Expand|Select|Wrap|Line Numbers
- Dim strSQL As String
- Dim db As Database
- Dim rst As Recordset
- .
- DoCmd.SetWarnings False
- DoCmd.GoToRecord , , acFirst
- Set db = CurrentDb()
- Set rst = db.OpenRecordset("SELECT * FROM preordlin")
- Do
- rst.Edit
- .
- strSQL = "INSERT INTO preordlin ([OrderNo],[StkID],[StkShortDesc],[Width],[Depth],[Height],[Qty]) SELECT forms!frmCustomerOrderForm!sfrmSOHeader!OrderNo AS OrderNo,[SubStkID],[stkmas.StkShortDesc],preordlin.Width,preordlin.Depth,preordlin.Height, [Qty] FROM (stkbommas INNER JOIN stkmas ON stkbommas.substkID = stkmas.StkID) WHERE stkbommas.StkID =" & rst!StkID
- DoCmd.RunSQL strSQL
- rst!SuppNo = DLookup("[SuppNo]", "stkmas", "[StkID] = Forms![frmPreSOLine]![StkID]")
- .
- rst.Update
- .
- rst.MoveNext
- .
- Loop Until rst.EOF
- .
- rst.Close
- .
- Me.Requery
- .
- Set rst = Nothing
- .
- DoCmd.SetWarnings True
I have changed the code to;
strSQL = "INSERT INTO preordlin ([OrderNo],[StkID],[StkShortDesc],[Width],[Depth],[Height],[Qty]) SELECT forms!frmCustomerOrderForm!sfrmSOHeader!OrderNo AS OrderNo,[SubStkID],[stkmas.StkShortDesc],[preordlin.Width],[preordlin.Depth],[preordlin.Height],[Qty] FROM (stkbommas INNER JOIN stkmas ON stkbommas.substkID = stkmas.StkID) WHERE stkbommas.StkID =" & rst!StkID
This works but only puts values in all the fields based on the first row not changing the fields when the second row has focus within the Loop.
Do you have any advice you could give me please?