アプリ版:「スタンプのみでお礼する」機能のリリースについて

2つの名簿テーブルを比較してどちらのテーブルにも含まれている個人を抽出したいと考えております。

テーブル名とフィールドは以下のとおりです。

====================
テーブル名「名簿A」

氏名
電話番号
住所
メールアドレス
====================
テーブル名「名簿B」



電話番号
住所
メールアドレス
====================

たとえば、この2つの名簿をメールアドレスで一致したものを抽出する場合は選択クエリのデザインビューで「名簿A」のフィールドを読み込ませ、
メールアドレスフィールドの抽出条件として

Like [名簿B].[メールアドレス]

を入れれば抽出ができたのですが、メールアドレスは、名簿ごとに記入されていたりしなかったりするので、名前での一致を行いたいと思っています。

ここで問題なのが、名簿Aは「氏名」で入力されているのに対し、名簿Bでは「姓」と「名」が別フィールドになっております。

そこで自分なりにやってみたのが、選択クエリのデザインビューで「氏名」のフィールドの抽出条件として

Like (*[名簿B].[姓]*)

を設定するものでした。
これがうまくいけば最終的には

Like (*[名簿B].[姓]*) And Like (*[名簿B].[名]*)

という風にして、名簿Aの「氏名」フィールドに名簿Bの「姓」も「名」も入っているものを抽出できるかな?と考えたのですが、上記のように入力すると、自動的に

Like ("*[名簿B].[姓]*")

となってしまい、何も抽出されなくなってしまいました。

このような方法では希望する抽出は行えないのでしょうか?

お分かりのかた、よろしくお願いいたします。

A 回答 (2件)

> 名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり



[名簿B].[姓] & [名簿B].[名]を使った時のクエリで考えてみます。

クエリをSQLビューで表示した時、抽出条件のところは

[名簿A].[名前] Like [名簿B].[姓] & [名簿B].[名]
とか
[名簿A].[名前] = [名簿B].[姓] & [名簿B].[名]

になっていると思います。

[名簿A].[名前]の部分に細工して、Replace([名簿A].[名前]," ","")に書き換えます。
(Replace で空白を削除してあげます)

それをもとに
Replace([名簿A].[名前]," ","") = [名簿B].[姓] & [名簿B].[名]
としてみるとどうなりますか。


※バージョンによっては、クエリ内で Replace が使えないものがあったかと思います。
その時には、補足なりに記述してください。
(対処方法はあります)
    • good
    • 0
この回答へのお礼

できました!

とてもわかりやすい解説ありがとうございました。
クエリをSQLビューで書き換えるというのは初めてやりました。

大変勉強になりました。
最後の解決までお付き合いいただきましてありがとうございました!!

お礼日時:2009/05/13 16:38

> Like ("*[名簿B].[姓]*")



Like "*" & [名簿B].[姓] & "*"

でどうなりますか。

[名簿B].[姓] & [名簿B].[名] でもよいと思います。

※同姓同名には適用できないかと。
    • good
    • 0
この回答へのお礼

ありがとうございます!
なるほど、&を使えばいいのですね。

Like "*" & [名簿B].[姓] & "*"
こちらの方法だと、表示はされるようになったのですが、特に一致しているものだけではなく、名簿Aの内容が全て表示されてしまいました。

[名簿B].[姓] & [名簿B].[名]
こちらの方法ではうまく抽出されました!
ただ、名簿Aの「氏名」欄には姓と名の間にスペースが入っているものがあり、それはやはり抽出されませんでした。

[名簿B].[姓] & "*" & [名簿B].[名]
Like([名簿B].[姓] & "*" & [名簿B].[名])

などを試してみましたが、うまくいきませんでした。

やはり難しい作業なのでしょうか…

お礼日時:2009/05/13 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A