두 개의 테이블이 있는데 테이블 B의 데이터를 테이블 A로 가져 오려고합니다. 테이블 A의 ID가 테이블 B에서 발견되지 않으면 null로 두십시오. 예 :Access 2007 VBA 코드는 루프의 첫 번째 레코드 만 반환합니다.
AID Sttl BID Sttl
4 88 3
20 92 2
88 3 100 8
92 2 500 10
800
코드 I 현재에만 그 다음 일치하는 레코드를 반환하지 않습니다 테이블 A의 첫번째 유사한 레코드를 반환 (예를.는 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