开放订单表中的第1条记录与Bookings表中的记录相匹配,但NO MATCH = True正在发生,因此它通过代码尝试插入新记录。对于文件中的多个记录而言,这是正确的,并且即使存在匹配,它也会尝试添加记录。如果我设置NO MATCH = False,那么它就是其他的。我将这些表从Access 97导入到了2010年正确工作的位置。任何帮助,将不胜感激。VBA代码适用于Access97,但不适用于2010
附加说明:在Debug中时,如果将鼠标悬停在.Seek“=”,TempCust,TempPart字段上,它将显示表中的第一条记录,并且该数据位于Bookings表中。不理解为什么它不匹配?
Sub Get_Current_Info()
DoCmd.SetWarnings False
Dim rstOpenOrd, rstBookings As Recordset
Dim TempCust, TempPart, TempQty, TempDollars As Variant
Set rstOpenOrd = CurrentDb.OpenRecordset("Open Orders", dbOpenTable)
Set rstBookings = CurrentDb.OpenRecordset("Bookings", dbOpenTable)
'Get the open orders
Do While Not rstOpenOrd.EOF
With rstOpenOrd
TempCust = !ODCSNO
TempPart = !ODITNO
TempQty = !ODQTOR
TempDollars = !OrdDollars
End With
With rstBookings
.Index = "PrimaryKey"
.Seek "=", TempCust, TempPart
If rstBookings.NoMatch = True Then
With rstBookings
.AddNew
!cusno = TempCust
!PrdNo = TempPart
!Qty_booked = TempQty
!Dol_booked = TempDollars
!Yest_qty_booked = 0
!Yest_dol_booked = 0
!Shipped_qty = 0
!Shipped_dol = 0
.Update
End With
Else
With rstBookings
.Edit
!Qty_booked = !Qty_booked + TempQty
!Dol_booked = !Dol_booked + TempDollars
.Update
End With
End If
End With
rstOpenOrd.MoveNext
Loop
End Sub