我有一个主窗体(DeliveryDockets)和子窗体(DeliveryDocketLines)。在主要表单OnLoad事件中,我正在设置快照记录集。
Set oldRS = CurrentDb.OpenRecordset("SELECT * FROM DeliveryDocketLines WHERE (DelDocketID = " & Me.DelDocketID & ");", dbOpenSnapshot, dbReadOnly)
然后在用户更改了子窗体数据之后,我想检查一下是做了哪些更改,所以在Save按钮的OnClick事件中我有以下内容
Set newRS = CurrentDb.OpenRecordset("SELECT * FROM DeliveryDocketLines WHERE (DelDocketID = " & Me.DelDocketID & ");", dbOpenDynaset)
oldRS.MoveFirst
Do While Not oldRS.EOF
newRS.FindFirst ("[ID] = " & oldRS![ID])
If newRS![DeliveryQTY] <> oldRS![DeliveryQTY] Then
'record has changed
End If
oldRS.MoveNext
Loop
这适用于oldRS中的第一条记录,但只要您移过第一条记录,旧RSS就会更新为新的RSS值。
这是否与从SELECT语句设置记录集有关?
我认为快照应该不允许这样做。
任何建议表示赞赏。