将报告链接到子表单

问题描述 投票:0回答:1

我有一个主报告(项目概述),我正在尝试创建一个OnClick事件,该事件会将我从报告带到在表单(LiveJobs)上输入该信息的字段。

我的问题是,有一个子窗体(Estimate Items Subform)在其中输入订单项。然后,在该子窗体上(生产子窗体)输入构成“项目”的组件的子窗体。因此,在“项目”下订购了“服务台”,然后在“生产”子窗体中输入了办公桌的组件-抽屉盒,顶部,隐私面板,因此可以对它们进行跟踪和监视以进行生产。当它们被生产时,在与特定星期相对应的时隙中为每个这些项目安排了时间。

在报告中,我希望能够单击为任何组件安排的时间,并链接回到表格和计划安排的相应星期,并在订购表格中移动小时数。目前,我的代码将使我进入正确的工作,但无法使我进入第一个子窗体的正确“层”,然后到达组件的正确层。例如,假设订单中的第三个项目,然后是该项目的2个组成部分。

下面是我当前所在的代码,仅能尝试到达第一个子窗体上的正确项目。我想出是否可以使用相同的逻辑来找到正确的组件。这段代码导致“运行时错误'13'类型不匹配” ...我已经忙了好几天了...预先感谢您提供的所有帮助。

Private Sub Estimated_hours_for_current_week_Click()

    Dim strWhere As String
    Dim DocName As String
    DocName = "LiveJobs"
    strWhere = "[Job Number]=" & "'" & Me![Job Number] & "'"
    DoCmd.OpenForm DocName, acNormal, , strWhere
    Forms![LiveJobs].[Estimate Items Subform].SetFocus

    'find the Item in the item subform

    Dim dbs As DAO.Database
    Dim RstItem As DAO.Recordset
    Dim strItemCriteria As Integer

    Set dbs = CurrentDb
    Set RstItem = dbs.OpenRecordset("Estimate Items Subform table", dbOpenDynaset)
    strItemCriteria = "[Estimate Item subform table ID] = '" & Me.Estimate_Item_subform_table_ID & "'"
    With RstItem
            RstItem.MoveLast
            DoEvents
            RstItem.FindFirst strItemCriteria
            Debug.Print (strItemCriteria)
            If .NoMatch Then
            MsgBox "No Match Found"
            End If
           End With

   Set rs = Nothing

End Sub
syntax hyperlink criteria recordset findfirst
1个回答
0
投票

我知道了代码。这里供参考。

Private Sub Estimated_hours_for_current_week_Click()
Dim frm1 As Form
Dim frm2 As Form
Dim rst1 As DAO.Recordset
Dim rst2 As DAO.Recordset
DoCmd.OpenForm "LiveJobs", _
WhereCondition:="[Job Number]=" & "'" & Me![Job Number] & "'"
Set frm1 = Forms!LiveJobs.Estimate_Items_Subform.Form
Set frm2 = Forms!LiveJobs.Estimate_Items_Subform!ProductionComponentSubform.Form
Set rst1 = frm1.Recordset.Clone
Set rst2 = frm2.Recordset.Clone
With rst1
.FindFirst "[Estimate Item subform table ID] =" & Me.Estimate_Item_subform_table_ID
If .NoMatch Then
MsgBox "Item not found"
Else
frm1.Bookmark = rst1.Bookmark
End If
End With
With rst2
.FindFirst "[Estimate details ID]=" & Me.Estimate_details_ID
If .NoMatch Then
MsgBox "project not found"
Else
frm2.Bookmark = rst2.Bookmark
Forms![LiveJobs].SetFocus
Forms![LiveJobs]![Estimate Items Subform].SetFocus
Forms![LiveJobs]![Estimate Items Subform]![ProductionComponentSubform].Form![Estimated 
hours for current week].SetFocus
End If
End With
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.