こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセステーブルでのルックアップ条件別表示について

 いつもお世話になっております。ACCESS2016を使用しています。
 お聞きしたいのは、条件によってテーブルのルックアップフィールドに表示されるデータを変えたいのですが、その方法が分かりません。
 フォームでのやり方は分かりますが、テーブルで表示させたいと思っています。
 例えば、下記のようなテーブルがあるとします。
 
 「T_マスター」テーブルの地区がAのときは「T_ルックアップA」を、「T_マスター」テーブルの地区がBのときは「T_ルックアップB」を担当者に表示させて、各「T_ルックアップ」テーブルにある3番目の担当者を入力したいと考えています。
 テーブルでこの表示をさせたいのですが、やり方が分かりません。

 どうぞご教示くださいますようお願いいたします。

投稿日時 - 2020-01-17 15:48:42

QNo.9702590

すぐに回答ほしいです

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

>条件によってテーブルのルックアップフィールドに表示されるデータを
 変えたいのですが、
 フォームでのやり方は分かりますが、
 テーブルで表示させたいと思っています。
 「T_マスター」テーブルの地区がAのときは「T_ルックアップA」を、
 「T_マスター」テーブルの地区がBのときは「T_ルックアップB」を
  担当者に表示させて、
 各「T_ルックアップ」テーブルにある3番目の担当者を
  入力したいと考えています。
★地区毎にルックアップするのではなく、ルックアプの定義は一つだけです。
 担当者毎に固定であればT_マスタの地区フィールドを参照
 出来るので何もする必要がありません。
 前回テーブルの組み立てが変と断言しました。
 なのでテーブルの名前はこちらで決めさせていただきます
 テーブル名の先頭は半角のMTL
  (M:マスタ T:トランザクション L:ルックアップ専用)
1.テーブル
 今回はM担当者の地区IDにL地区をルックアップ設定します
1-1.M担当者
 ・ID:(オートナンバー型の主キー 長整数型)
 ・担当者名:短いテキスト型
 ・地区ID:(長整数型 L地区をルックアップ) 
1-2.L地区
 ・ID:(オートナンバー型の主キー 長整数型)
 ・地区名:短いテキスト型
2.M担当者の地区IDにL地区でルックアップ
 流れの順を列挙しますが、各ツールは→で区切っています。
 
クリックで進みます
 M担当者をテーブルをデザインビューで開き地区ID→下のルックアップタグ
 表示コントロール1行だけ表示されます
 これの右端のVをクリックすると(テキスト、リスト、コンボのリストになり
 →コンボボックス
  添付のような表示になります
  列数をIDと地区名の2に変更
 →値集合ソースの右端V→L地区
 これで他の行は規定値で今回は修正の必要がありません
 
 ・連結列:L地区の1行目ID
 ・列数2:L地区の1行目ID2行目地区名
 ・列幅:L地区のフィールドの表示幅です。
  IDはCP任せで意味不明です。0は非表示にする
  それぞれの表示幅は;区切りで決めますが最後の一つは省略できます
 ・リスト行数:16が規定値ですが自分は48行にしているテーブルがあります
   このプルダウンリストはフォームの高さを超えても表示されます。
 ・リスト幅:自動は元のテキストボックスの幅ですが、
  これ以上はここで指定します
3.フォームの作成
 3-1.フォームを条件付きで開くときは、開く前に条件値を確定している
  必要があります
 3-2.この条件を確定させるフォームをメニューとします。
 3-3メニューフォームの作成
  作成タブ→フォームデザイン→デザインリボン→コンボボックス
 →詳細画面→次へ→表示されたリストからL地区→次へ→全て→次へ→次へ
 →次へ→完了
  ここで「表示する値をここで指定」を選ぶとルックアップ用テーブルは不要
      検索Key名を値をここで表示する
 →次へ→L地区→ID,地区を選択→次へ→次へ→次へ→完了
 →作成したコンポボックス
 →プロパティ―シート→その他タグ→名前をラベル表示と同じ地区名とする
 →フォームを閉じる→はい→「メニュー」と入力
3-4.M担当者の登録フォームを作成
  M担当者にカーソルを合わせて選択状態にする→作成リボン
 →その他のフォーム→複数のアイテム
  M担当者のフォームが開いて登録状態になっています。
 →M担当者のタグを右クリック→デザインビュー→詳細側のIDを削除
 →配置リボン内のサイズ/間隙ツールを駆使して形を整えて下さい
  自動調整はラベルボッククスの文字列に合わさり、
  テキッストボックスは連動します。
3-5.地区IDメニューの地区名を検索条件とする
 →フォームフッター→データタグ→レコードソースの右端…
  フィールドでなくフォームのプッロパティを表示するためです。
   クエリビルダが起動し、クエリの画面になります
 →ワイルドカードの*をフィールドへドラッグ
 →検索対象の地区IDをフィールドにドラッグ→表示が*と重複するので
  表示のチェックを外す
4.メニュー
 メニューフォームは他のフォーム、レポート(見積書等)を開くボックッス
 、会社のプロフィール
 (自社名、住所、決算日、日報、月報、年報作成のための日付項目)
  を計算しておきます。
 そのためファイルを開いたとき、最初に開く設定が出来ます
 ファイルリボン→オプション→現在のデータベース→フォームの表示
 →プルダウンやメニュー→OK
★テーブル、クエリ、フォーム、レポートの関係を重ねました
 情報は全てテーブルに保管されます。他はテーブル参照するためです
 テーブルのフィールドには実行効率を上げたり、
 矛盾する情報入らないためのプッロパティがあります。
 多くの人、特にExcelを使い込んだ人は同じような画面でテーブルが
 作成できるのでテーブルをとばして、クエリ、
 フォームと進まれるのではないでしょうか
 テーブルはシステムの土台です。しっかり抑えておきましょう

 

投稿日時 - 2020-01-18 22:18:05

お礼

chayamatiさん、いつも大変お世話になっております。
長文にわたりご教示いただきまして、誠にありがとうございます。
今後とも、よろしくお願いいたします。

投稿日時 - 2020-01-20 17:26:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問