• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出)

2つのテーブルを比較してフィールドの一部が一致したデータを抽出

このQ&Aのポイント
  • 2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出する方法について教えてください。
  • 2つの名簿をメールアドレスで一致させたデータを抽出する方法について詳しく教えてください。
  • 名簿Aの氏名フィールドと名簿Bの姓と名のフィールドを比較して一致するデータを抽出する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

> 名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり [名簿B].[姓] & [名簿B].[名]を使った時のクエリで考えてみます。 クエリをSQLビューで表示した時、抽出条件のところは [名簿A].[名前] Like [名簿B].[姓] & [名簿B].[名] とか [名簿A].[名前] = [名簿B].[姓] & [名簿B].[名] になっていると思います。 [名簿A].[名前]の部分に細工して、Replace([名簿A].[名前]," ","")に書き換えます。 (Replace で空白を削除してあげます) それをもとに Replace([名簿A].[名前]," ","") = [名簿B].[姓] & [名簿B].[名] としてみるとどうなりますか。 ※バージョンによっては、クエリ内で Replace が使えないものがあったかと思います。 その時には、補足なりに記述してください。 (対処方法はあります)

hoso1974
質問者

お礼

できました! とてもわかりやすい解説ありがとうございました。 クエリをSQLビューで書き換えるというのは初めてやりました。 大変勉強になりました。 最後の解決までお付き合いいただきましてありがとうございました!!

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

> Like ("*[名簿B].[姓]*") ↓ Like "*" & [名簿B].[姓] & "*" でどうなりますか。 [名簿B].[姓] & [名簿B].[名] でもよいと思います。 ※同姓同名には適用できないかと。

hoso1974
質問者

お礼

ありがとうございます! なるほど、&を使えばいいのですね。 Like "*" & [名簿B].[姓] & "*" こちらの方法だと、表示はされるようになったのですが、特に一致しているものだけではなく、名簿Aの内容が全て表示されてしまいました。 [名簿B].[姓] & [名簿B].[名] こちらの方法ではうまく抽出されました! ただ、名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり、それはやはり抽出されませんでした。 [名簿B].[姓] & "*" & [名簿B].[名] Like([名簿B].[姓] & "*" & [名簿B].[名]) などを試してみましたが、うまくいきませんでした。 やはり難しい作業なのでしょうか…