循环访问记录集
问题描述:
我试图让记录集循环代码工作,我有我的波纹管代码,它保持输入一个零。我的第二段代码是相同的代码,但在消息框中显示数量。它显示的数字是我想要输入到我的字段中的数字。我似乎不能把它放在现场!数量?循环访问记录集
Dim Val As Integer
Dim rs As DAO.Recordset
Set rs = Forms!frmReceive!sfrmReceiveDetailEntry.Form.RecordsetClone
With rs
Do While Not rs.EOF
rs.Edit
Val = Nz(DLookup("[RemainingQty]", "tblQtySoFarTEMP", "[OrderDetailPK]= " & rs! [OrderDetailFK]))
rs!Qty = Val
rs.Update
rs.MoveNext
Loop
End With
Set rs = Nothing
值显示在消息框中
Dim val As Integer
Dim rs As DAO.Recordset
Set rs = Forms!frmReceive!sfrmReceiveDetailEntry.Form.RecordsetClone
With rs
Do While Not rs.EOF
val = Nz(DLookup("[RemainingQty]", "tblQtySoFarTEMP", "[OrderDetailPK]= " & rs! [OrderDetailFK]))
MsgBox val
rs.MoveNext
Loop
End With
Set rs = Nothing
答
我算出来到底,这是我工作的代码!
'If YES then run the following code
AreYouSure = MsgBox("You are about to Receive All of Order" & txtOrderNumber.Value & " , Are you Sure?, The whole order and it's Quantities will be updated?", vbYesNo, "Receive All?")
If (AreYouSure = vbYes) Then
'disable warnings
DoCmd.SetWarnings False
'Create recordsetclone of subform
'loop recordset and lookup remaining qty to receive all
Set rs = Forms!frmReceive!sfrmReceiveDetailEntry.Form.RecordsetClone
With rs
Do While Not rs.EOF
rs.Edit
rs("Qty") = Nz(DLookup("[RemainingQty]", "tblQtySoFarTEMP", "[OrderDetailPK]= " & rs![OrderDetailFK]))
rs.Update
rs.MoveNext
Loop
End With
Set rs = Nothing
+0
仍然。假设你没有在同一个地方使用With子句和记录集变量(rs)。如果你使用rs你不需要rs.edit但是.edit就足够了。清楚这样的事情会阻止你在稍后调试失败的时间。 – Johanness
我只看到你有一个rs语句,然后仍然使用rs引用表。不应该是一个问题,但是当你找不到错误时,总是尽量避免使用陈述。 - 然后尝试在编辑之前移动编辑一行/移动val =语句... – Johanness
我同意@Johanness,将'rs.Edit'移动到您的'Val ='代码下面。试试看。 –