我有一个包含 3 个字段的表:DONOR_CONTACT_ID,
RECIPIENT_CONTACT_ID
, ORDER_NUMBER
. 我想DONOR_CONTACT_ID
按我对查询所做的升序排序Q_RECIPIENT_SORT
。然后我想使用临时变量来检查记录是否相同,如果有DONOR_CONTACT_ID
,则显示一条消息(大多数记录都相同DONOR_CONTACT_ID
)。我的程序做了它应该做的一切,但最后它总是得到一个错误,说“没有当前记录”。这是我的代码:
Option Compare Database
Option Explicit
Function UsingTemps()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strTemp1 As Long
Dim strTemp2 As Long
DoCmd.SetWarnings False
DoCmd.OpenQuery ("Q_RECIPIENT_SORT")
DoCmd.OpenTable ("T_RECIPIENT_SORT")
DoCmd.SetWarnings True
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("T_RECIPIENT_SORT", dbOpenTable)
rst.MoveFirst
strTemp1 = rst!DONOR_CONTACT_ID
rst.MoveNext
strTemp2 = rst!DONOR_CONTACT_ID
Do While Not (rst!DONOR_CONTACT_ID = rst.EOF)
If strTemp1 = strTemp2 Then
MsgBox ("Equal")
Else
MsgBox ("Not equal")
End If
strTemp1 = strTemp2
rst.MoveNext
strTemp2 = rst!DONOR_CONTACT_ID
Loop
Set dbs = Nothing
End Function
我认为问题出在以下几行:
rst.MoveNext
strTemp2 = rst!DONOR_CONTACT_ID
我认为当没有更多记录时,它正试图移动到下一条记录。可能我的逻辑有问题。但我已经盯着它看了一段时间,我的改变没有奏效。我需要另一双眼睛来看看它。
任何帮助表示赞赏!