我有兩個表,我試圖從表B中獲取數據到表A中。如果表A的ID在表B中找不到,則將其保留爲空。例如,Access 2007 VBA代碼只返回循環的第一條記錄
AID Sttl BID Sttl
4 88 3
20 92 2
88 3 100 8
92 2 500 10
800
的代碼我現在有隻返回表A的第一個類似的記載不退還的下一個匹配記錄(例如,它返回3 AID 88但AID92不返回任何東西)。我錯過了什麼?
Dim db As dao.Database
Dim rs1 As dao.Recordset
Dim rs2 As dao.Recordset
Set db = CurrentDb()
Set rst1 = db.OpenRecordset(cstrFromtbl, dbOpenDynaset)
Set rst2 = db.OpenRecordset(cstrTotbl, dbOpenDynaset)
Do While Not rs2.EOF
If rs2.Fields("A.ID") = rs1.Fields("B.ID") Then
rs2.Edit
rs2.Fields("Sttl") = rs1.Fields("Sttl")
rs2.Update
Else
rs2.Edit
rs2.Fields("Sttl") = Null
rs2.Update
End If
rs2.MoveNext
Loop
Set rs1 = Nothing
Set rs2 = Nothing
Set dbs = Nothing
End Function
首先,您需要確保您按ID排序了表。我沒有在你的代碼中看到類似rs1.MoveNext的東西。這段代碼是否正確? – Makah