1 つのテーブルが他のテーブルで一致を見つける必要がある 2 つのテーブルがあります。
table1 と Masterfiles テーブルがあるとします。Table1 には、Masterfiles と同じ名前フィールドがあります。
ただし、Masterfiles にはミドル ネームがあるのに対し、table1 の名前フィールドにはミドル ネームのイニシャルしかないため、値が異なります。
table1には性別フィールドの値がないため、「性別」と呼ばれるマスターファイルから他のフィールド値を取得したいと思います。
テーブルは次のようになります。
Table1 Masterfiles
Name Gender Name Gender
Smith, John E. Smith, John Estaw M
Canard, Donald R Canard, Donald Reever M
table1 には、性別フィールドの値を取得する必要があるレコードがたくさんあるので、プログラムで行う必要があります。
現在、次のコードがあります。
Dim db As Database
Dim rs As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim strSQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("Table1")
Do While Not rs.EOF
strSQL = "SELECT [Name], Gender FROM Masterfiles WHERE [Name] Like '%" & Me!txtName & "%'"
Set rs2 = db.OpenRecordset(strSQL)
If rs2.RecordCount > 0 Then
rs!Gender = rs2!Gender
End If
Loop
ただし、このコードでは結果が得られません。これは、table1 の Name フィールドの値の一部の中間のイニシャルにピリオドがあり、他の行にはピリオドがないためです。上記のサンプルデータを参照してください。「スミス、ジョン」のミドルイニシャルにはピリオドがありますが、「カナード、ドナルド」にはピリオドがありません。
では、Masterfiles を照会して Gender フィールドの値を取得し、それを table1 の性別フィールドに入れるにはどうすればよいでしょうか?