DONOR_CONTACT_ID,
RECIPIENT_CONTACT_ID
、の 3 つのフィールドを持つテーブルがありますORDER_NUMBER
。DONOR_CONTACT_ID
query で行った昇順でソートしたい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
残りのレコードがなくなったら、次のレコードに移動しようとしていると思います。おそらく私のロジックに何か問題があります。しかし、私はしばらくそれを見つめていましたが、私の変更はうまくいきませんでした. 私はそれを見るために別の目が必要です。
どんな助けでも大歓迎です!