asked on
Public Sub CreateOrderLines(frm As Form, strFormName As String, strSubformName As String)
Dim rsSourceLines As Recordset
Dim strAfterUpdate As String
strAfterUpdate = ("cboSOLinesID_AfterUpdate") 'even better would be strAfterUpdate = (strControlName & "_AfterUpdate")
Set rsSourceLines = CurrentDb.OpenRecordset("SELECT " & strTableName & "." & strFieldName & ", " & strTableName & ".UnitsID, " & strTableName & "." & strSelectField & ", " & strTableName & ".WarehouseID, tblSOHeader.PVID, tblSOHeader.dtmDate, tblItems.VendorsID " _
& "FROM tblItems INNER JOIN (tblSOHeader INNER JOIN " & strTableName & " ON tblSOHeader.SOHeaderID = " & strTableName & ".SOHeaderID) ON tblItems.ItemsID = " & strTableName & ".ItemsID " _
& "WHERE (((" & strTableName & "." & strSelectField & ") > 0) And ((tblSOHeader.SOHeaderID) = " & frm![txtSOHeaderID] & strCreateOrderLinesWhere & varVendorWhere & ")) " _
& "ORDER BY " & strTableName & "." & strFieldName & "; ")
DoCmd.OpenForm strFormName
DoCmd.GoToRecord acDataForm, strFormName, acLast
With Forms(strFormName).Controls(strSubformName).Form
Do Until rsSourceLines.EOF
.Recordset.AddNew
.Controls(strControlName) = rsSourceLines(strFieldName)
.lngUnitQuantity = rsSourceLines(strSelectField)
.UnitsID = rsSourceLines!UnitsID
.(strAfterUpdate) 'This would work if I typed cboSOLinesID_AfterUpdate, but how do I make it work with a variable?
.Dirty = False
rsSourceLines.MoveNext
Loop
End With
End Sub
Thank you.