|
以下のプログラムで顧客テーブルから登録番号が一致するものに対してチェックを行い、
一致しないものはNGTBLに新規登録したいのですが、レコードの抽出が上手くいきません。
コード1の時、T_情報の全情報が取得されます。
コード2の時、正しく、NGTBLに登録。
コード3の時、正しく、コード値3の情報のみ取得します。
多分検索条件が悪いと思うのですがどうしていいか?です。宜しかった教えてください。
<データ>
T_顧客 FLDコード
1
2
3
T_情報 FLDコード FLDCHK1
1 0
1 0
3 1
3 1
Dim db As Database
Dim rstMain As Recordset
Dim rstSub As Recordset
Dim rstNG_D As Recordset
Dim nChk As Integer
Set db = CurrentDb()
Set rstMain = db.OpenRecordset("T_顧客", dbOpenDynaset)
Set rstSub = db.OpenRecordset("T_情報", dbOpenDynaset)
Set rstNG_D = db.OpenRecordset("NG_D", dbOpenDynaset)
rstMain.MoveFirst
Do Until rstMain.EOF
rstSub.MoveFirst
rstSub.FindFirst "コード=" & rstMain!コード
If rstSub.NoMatch = True Then
rstNG_D.AddNew
rstNG_D!コード = rstMain!コード
rstNG_D.Update
Else
Do Until rstSub.EOF
nChk = rstSub!CHK1
// この処理は省略・・
rstSub.MoveNext
Loop
End If
rstMain.MoveNext
Loop
rstSub.Close: Set rstSub = Nothing
rstMain.Close: Set rstMain = Nothing
|
|