- ベストアンサー
2つのテーブルを比較してフィールドの一部が一致したデータを抽出
- 2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出する方法について教えてください。
- 2つの名簿をメールアドレスで一致させたデータを抽出する方法について詳しく教えてください。
- 名簿Aの氏名フィールドと名簿Bの姓と名のフィールドを比較して一致するデータを抽出する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり [名簿B].[姓] & [名簿B].[名]を使った時のクエリで考えてみます。 クエリをSQLビューで表示した時、抽出条件のところは [名簿A].[名前] Like [名簿B].[姓] & [名簿B].[名] とか [名簿A].[名前] = [名簿B].[姓] & [名簿B].[名] になっていると思います。 [名簿A].[名前]の部分に細工して、Replace([名簿A].[名前]," ","")に書き換えます。 (Replace で空白を削除してあげます) それをもとに Replace([名簿A].[名前]," ","") = [名簿B].[姓] & [名簿B].[名] としてみるとどうなりますか。 ※バージョンによっては、クエリ内で Replace が使えないものがあったかと思います。 その時には、補足なりに記述してください。 (対処方法はあります)
その他の回答 (1)
- 30246kiku
- ベストアンサー率73% (370/504)
> Like ("*[名簿B].[姓]*") ↓ Like "*" & [名簿B].[姓] & "*" でどうなりますか。 [名簿B].[姓] & [名簿B].[名] でもよいと思います。 ※同姓同名には適用できないかと。
お礼
ありがとうございます! なるほど、&を使えばいいのですね。 Like "*" & [名簿B].[姓] & "*" こちらの方法だと、表示はされるようになったのですが、特に一致しているものだけではなく、名簿Aの内容が全て表示されてしまいました。 [名簿B].[姓] & [名簿B].[名] こちらの方法ではうまく抽出されました! ただ、名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり、それはやはり抽出されませんでした。 [名簿B].[姓] & "*" & [名簿B].[名] Like([名簿B].[姓] & "*" & [名簿B].[名]) などを試してみましたが、うまくいきませんでした。 やはり難しい作業なのでしょうか…
お礼
できました! とてもわかりやすい解説ありがとうございました。 クエリをSQLビューで書き換えるというのは初めてやりました。 大変勉強になりました。 最後の解決までお付き合いいただきましてありがとうございました!!