プロが教える店舗&オフィスのセキュリティ対策術

初心者です。よろしくお願いします。
そもそも、できるのかどうか、できたとして、どうするのかがわからないです。

次の2つのテーブルがあります。
テーブルマスタA には、①市町村CD ②市町村名 ③住所(番地なし)
テーブル受付データB には、①NO ②住所(番地まであり)③受付日 ④⑤・・・

具体的には、以下のとおり。(サンプル)
テーブルマスタA
①    ②      ③
10000  松戸市    千葉県松戸市
20000  鎌ケ谷市本町 千葉県鎌ケ谷市本町
30000  横須賀市   神奈川県横須賀市
テーブル受付データB
①    ②
1    千葉県松戸市五香5-5-5    
2    千葉県鎌ケ谷市本町さくらがおか8-88-8 ひまわりアパート302
3    神奈川県横須賀市横須賀8-7-8   

テーブル受付データBにおいて、②の部分(市町名まで)と、
テーブルマスタAの③をなんとか紐づけて、

クエリで合体させたい。
=テーブル受付データBに、テーブルマスタAの市町村CDを充てたい。
A①市町村CD  A②市町村名 B② B③ B④ B⑤
とすることを切望しています。

***********
たとえば、2つのテーブルに同じフィールドがあって、
それをリレーションシップで紐づけるのは容易ですが、
今回のようなパターンは、
もしかして、私は、ナンセンスなことをしようと苦闘している?と思ってきました。
フィールド名が同じじゃないのに、それを紐づけることができるのでしょうか?

できるとして、どのようにすればよいのでしょうか?

どうぞ、教えていただきたく、お願いいたします!!!

A 回答 (2件)

パラメータが表示されたのは指定したフィールドがないからです。


テーブル名とフィールド名を使用している名前に変更してください。

InStr関数は
ある文字列 (string1) の中から指定された文字列 (string2) を検索し、最初に見つかった文字位置を返す文字列処理関数です。
InStr(string1, string2)

やっていることはテーブル受付データBの②(住所)の中からテーブルマスタAの③(住所)を検索し
文字列がある位置を出しています。
必要なのは文字列が含まれているデータのみなので条件を>0としています。

試しにInStrの部分をなくしてクエリを実行してみてください。
「テーブルマスタA」のレコード数*「テーブル受付データB」のレコード数のデータが表示されるはずです。
    • good
    • 0
この回答へのお礼

y504さま
こんばんは。先ほど、帰宅して、すぐに試してみました。。。。できました!!!!!!
おっしゃるとおり、フィールド名の作成凡ミスでした。。

できて、びっくりしました。すごい無茶な検索かな、と思っていたので、y504さまのおかげで解決しました。
ありがとうございました!

お礼日時:2016/07/20 23:44

テーブルマスタAに必ず1つ条件に一致するデータがあるという前提ですが、



クエリデザインで「テーブルマスタA」、「テーブル受付データB」を追加。
リレーションは行わなくていいです。
必要なフィールドを追加。
InStr([テーブル受付データB].[住所],[テーブルマスタA].[住所])でフィールドを作成し条件を>0
    • good
    • 0
この回答へのお礼

y504さま
ご回答ありがとうございます。早速試してみました。

 クエリデザインで「テーブルマスタA」、「テーブル受付データB」を追加。→クリア
 必要なフィールドを追加。→クリア
 空白のフィールドに、”InStr([テーブル受付データB].[住所],[テーブルマスタA].[住所])”を貼り付けて、
 抽出条件に、”>0”と入力しました。→?

 実行してみると、パラメータが表示されて「テーブル受付データB.住所」と「テーブルマスタA.住所」を聞かれました。

 できない・・・。(T T)

☆テーブル受付データBの②住所情報を元に、テーブルマスタAで決められている市町村のコードをもってきたいのですが。。。
 
テーブル受付データBの NO1 の 千葉県松戸市五香5-5-5 レコードは、
テーブルマスタAの 住所:千葉県松戸市 を含むから、NO1の市町村CDは、、、10000 で、市町村名は、、、松戸市!
というクエリ表示をしたいと思っています。

視点を変えてみたりして、もう少し、頑張ってみます。

ありがとうございました!

お礼日時:2016/07/20 00:53

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

関連するカテゴリからQ&Aを探す