ACCESSで顧客ごとに住所を選択する方法

このQ&Aのポイント
  • 初心者の方がACCESSで住所録を作成している際、顧客情報の住所を顧客ごとに選択する方法について説明します。
  • 顧客情報の住所を異なるテーブルで管理し、フォーム上にテキストボックスを配置して顧客ごとに選択できるようにします。
  • また、クエリやVBAを使用して顧客ごとの住所の一覧表を作成し、レポートの出力やリストボックスへの一覧配置も可能です。
回答を見る
  • ベストアンサー

ACCESSで顧客ごとに住所を選択したい

OS:Windows10 64bit ACCESSバージョン:2010 ACCESSで住所録を作っている初心者です。 顧客情報の住所を[住所A]、[住所B]と2つの異なるテーブルで管理しています。 郵便物の発送先が顧客によって異なるため、フォーム上に[住所A]、[住所B] それぞれのテキストボックスを配置し、顧客ごとに[住所A][住所B]のどちらに送るか オプションボタンで判別しているのですが、これの一覧表を作成するにはクエリ(又はVBA)で可能なのでしょうか? オプションボタンのデータは別途[顧客]テーブルに保存し、顧客IDを主キーとしてリレーションしています。 簡単ですがフォームのイメージは下記のとおりです。 顧客フォーム [顧客ID] 0001 [住所A] 東京都 [住所B] 千葉県 [発送先] ●住所A ○住所B [顧客ID] 0002 [住所A] 神奈川県 [住所B] 東京都 [発送先] ○住所A ●住所B レポートの出力及びリストボックスへの一覧配置が出来ればと考えています。 よろしくお願い致します。

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

  • ベストアンサー
  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.2

顧客テーブル 顧客ID 住所A 住所B 発送先テーブル 顧客ID 発送先(AorBで登録) だとしたら、 SELECT 顧客テーブル.顧客ID, IIf([発送先テーブル]![発送先]="A",[顧客テーブル]![住所A],[顧客テーブル]![住所B]) AS 住所, 発送先テーブル.発送先 FROM 顧客テーブル INNER JOIN 発送先テーブル ON 顧客テーブル.顧客ID = 発送先テーブル.顧客ID; とるすことで、発送先(AorB)に指定されている住所の方が(住所A or 住所B) 採用されて表示されます。 見当違いな回答だったらすみません。

fmxBeem
質問者

お礼

ご回答ありがとうございます。丁寧にSQLまで記述いただき、感謝いたします。IIF関数でクエリ式の作成にチャレンジしてみようと思います。

その他の回答 (2)

  • -9L9-
  • ベストアンサー率44% (1088/2422)
回答No.3

私ならIIF関数で住所Aか住所Bを表示する式フィールドを作ってそれを使いますが。

fmxBeem
質問者

お礼

ご回答ありがとうございます。IIF関数ですね。調べてみます。

回答No.1

>レポートの出力及びリストボックスへの一覧配置が出来ればと考えています。 疑問点1、レポートに一覧配置するって意味がちょっと理解不能。 疑問点2、Lボックスに一覧配置するって意味がちょっと理解不能。 理由: 普通は、(添付図のように)顧客名簿.ID(顧客台帳.ID)が一致する住所を住所録_1と住所録_2から探して表示するのではと思うが・・・。 >簡単ですがフォームのイメージは下記のとおりです。 これも、ちょい理解不能。大抵は、単票フォームであれば(添付図のように)顧客名簿情報は1件のみ。

fmxBeem
質問者

お礼

ご回答ありがとうございます。説明不足で申し訳ありませんm(_ _)m

関連するQ&A

  • 顧客IDを入力すると顧客名や住所が表示されるように

    Accessで、フォームから顧客テーブルにある顧客IDを入力すると、同じフォーム内にある「顧客住所」や、「電話番号」など、顧客テーブルに登録してある情報が表示されるようにするには、どうすれば良いでしょうか? 環境は WindowsXP Access2003 です。

  • Accessのチェックボックスでチェックしたデータのみ更新するには。

     Access2000で顧客管理のDBを作っています。年齢などの条件をフォームから入力し、抽出結果をレポートで出力しています。この度、顧客情報のテーブルに「最終DM発送日」というフィールドを追加したいと考えています。  顧客の抽出は主に、DM発送の顧客の絞込みのため行っています。抽出した顧客一覧をフォームで表示し、顧客毎にチェックボックスを設け、実際DMを送ったかどうかのチェックを行いたいのです。が、チェックボックスで得た結果の使い方がよくわかりません。どのように、テーブルに反映したらよいのでしょうか?  どうかよろしくお願い致します。

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • Access2000 フォームからレコード検索

    Access2000で質問です。 「顧客テーブル」を作ります。 顧客テーブルには以下のフィールドを設けます。 顧客ID(主キー) 名前 TEL 住所 変更住所 顧客IDから住所まではすでにデータが入っています。 「変更住所」に新しくデータを入れていきます。 その際に、フォームを利用したいと思っていますが、 新規フォーム(何もデータが入っていない)に顧客IDを入れたら、すでに顧客テーブルに入力されている名前、TEL、住所がパッと表示され、変更住所だけが空欄で表示されるようなフォームを作りたいと思います。 どのような方法がありますでしょうか? ぜひお知恵を貸してください。よろしくお願いいたします。

  • ACCESS

    どうか皆さんのお力添えを下さい。 ACCESS2010を利用して、以下の様な注文フォームaccdbを完成させていと考えています。現在、以下のところまで作業が進んでいます。 (1)テーブル (1) 注文履歴テーブル 注文ID・・・オートナンバー型 商品No・・・テキスト型 数量・・・数値型 (2) 商品テーブル 商品No・・・テキスト型 商品名・・・テキスト型 単価・・・通貨型 (3) 顧客テーブル 顧客ID・・・数値型 顧客名・・・テキスト型 パスワード・・・テキスト型 (2)フォーム (1)ログインフォーム 顧客ID入力用テキストボックス パスワード入力用テキストボックス ログインボタン・・・VBAを使って顧客テーブルに入っている顧客ID、パスワードが一致すれば注文フォームが開くところまではできました。 (2)注文フォーム(商品画像一覧があり、それをクリックすると商品No毎に個別に作成した注文フォームにジャンプします) ・コントロールボックスで数量を選ぶ ・注文ボタンを押すと注文履歴テーブルに商品ID、商品名、商品数が反映されます。 ここからが質問内容になります。 まず、はじめにログインフォームで入力後、照合OKになった顧客ID、パスワードを その後開いた注文フォームでの注文作業が完了、または中断するまでの間、 注文履歴に自動的に入力させ続けることはできますでしょうか?複数商品の注文が あった際は注文履歴テーブルにおいて複数レコードが連続して同じ顧客IDになるような 方法はあるでしょうか? ネット通販のようなものをイメージしております。 その他にもっと効率の良いやりかたなどあればご教授下さい。 どうぞよろしくお願いします。

  • Accessのフォームにて

    Accessの配達管理のフォーム(表形式、ある条件にて抽出済み)にて ●日付 ●顧客ID  ・  ・ ●配達者CD 上記のフィールドがあるとします。 このフォームのヘッダー部分に非連結のテキストボックスA、Bを作成し、 テキストボックスAに配達者CDを入力すると、 テキストボックスBに配達者名が表示される。 フッター部分に「印刷」ボタンを作成し、これをクリックすると、 フォーム一覧の配達者CDにヘッダー部分のテキストボックスAの 配達者CDが入力されるというシステムを作りたいのですが、 テキストボックスAの配達者CDを参照させて、テキストボックスBに 配達者名を表示させるというのがうまくいきません。 テーブルにて、配達者マスタ ●配達者CD ●配達者名 は、作成しています。 よろしくお願いいたします。

  • Accessについて

    Access初心者です。 Accessで顧客管理をするものを作成しているのですが 顧客のデータはエクセルよりテーブルへインポートしました。 (顧客名、ふりがな、住所、TEL。FAXなど) その後、個々の顧客のデータを検索して内容を観たい場合は フォームで作成すればよいのでしょうか? テーブルよりウィザードでフォームを作成して 「顧客名」の欄でコンボボックスで顧客名を選択して 個々の顧客の内容を観たいのですが、コンボボックスで選択しても 顧客名が変わるだけで、住所やその他の内容がついてきません。 フォームの画面が見やすくて良いのですが、フォームとは入力画面で 内容を確認する画面ではないのでしょうか? それともプロパティ他で何か設定する所があるのでしょうか? よろしくお願いします。

  • Access、教えてください。

    顧客データテーブル(ID・Name)とトータルデータがあります。 フォーム(トータルデータテーブル)内のコンボボックスで顧客データを選択して入力するのですが、その時、フォーム上では名前を表示し、テーブルにはIDで保存したいのです。できますでしょうか?どのようにしたら良いのでしょうか?教えてください。よろしくお願いいたします。

  • Access2003のコンボボックスで

    テーブルにある ID 名前 誕生日 住所 データをフォームで IDをコンボボックスで選択し テキストボックスA,B,Cに 名前、誕生日、住所を表示させたいのですが どの様な処理を行なえばよろしいのでしょうか?

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

専門家に質問してみよう