Связывание отчета с подчиненной - PullRequest
0 голосов
/ 20 января 2020

У меня есть основной отчет (обзор проектов), который я пытаюсь создать событие OnClick, которое перенесет меня из отчета в поле, где эта часть информации вводится в форму (LiveJobs).

Моя проблема заключается в том, что существует подчиненная форма (Subform Estimate Items Subform), в которую вводятся позиции заказа. Затем существует подчиненная форма (производственная подчиненная), в которую вводятся компоненты, составляющие «Товар». Таким образом, «Стол» заказывается в разделе «Предметы», а затем компоненты рабочего стола - ящики ящика, верх, панель конфиденциальности - все вводятся в производственную подчиненную форму, чтобы их можно было отслеживать и отслеживать для производства. Поскольку они производятся, для каждого из этих элементов запланировано время в интервале времени, соответствующем конкретной неделе.

В отчете я хочу иметь возможность щелкнуть по времени, запланированному для любого компонента, и вернуться к форме и соответствующей неделе, на которой он запланирован, и перемещать часы в форме заказа. Мой код в настоящее время приведет меня к правильной работе, но он не приведет меня к правильному «слою» первой подчиненной формы, а затем к правильному слою компонента. Скажем, например, 3-й элемент в заказе, а затем 2 компонента этого элемента.

Ниже приведен мой код в том виде, в котором он находится в данный момент, который идет только до попытки найти правильный элемент в первой подчиненной форме. Я подумал, что если я смогу это понять, то смогу использовать тот же лог c, чтобы добраться до нужного компонента. Этот код приводит к "Runtime Error '13' Type Mismatch" ... Я много раз повторял это несколько дней ... Заранее спасибо за любую помощь.

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

1 Ответ

0 голосов
/ 24 января 2020

Я разобрался с кодом. Вот это для справки.

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
...