0

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

我的问题是有一个输入订单项目的子表单(Estimate Items Subform)。然后有一个子表单(生产子表单),这是输入组成“项目”的组件的地方。因此,在“项目”下订购了“桌子”,然后桌子的组件 - 抽屉盒、顶部、隐私面板都输入到生产子表单中,因此它们都可以被跟踪和监控以进行生产。在生产它们时,在对应于特定周的时间段中为这些项目中的每一个安排了时间。

在报告中,我希望能够单击为任何组件安排的时间并链接回表格和安排它的相应周,并在订单表格中移动时间。我的代码目前将带我到正确的工作,但它不会让我到第一个子表单的正确“层”,然后到组件的正确层。例如,订单中的第 3 个项目,然后是该项目的第 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
4

1 回答 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
于 2020-01-24T17:55:49.557 回答