- ベストアンサー
アクセステーブルでのルックアップ条件別表示について
- ACCESS2016を使用している場合、テーブルのルックアップフィールドに表示されるデータを条件によって変えたい場合について教えてください。
- フォームでの方法ではなく、テーブルでの表示方法についてアドバイスをお願いします。
- 具体的な例として、T_マスターというテーブルの地区がAの場合にはT_ルックアップAを、地区がBの場合にはT_ルックアップBを担当者に表示させたいと考えています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>条件によってテーブルのルックアップフィールドに表示されるデータを 変えたいのですが、 フォームでのやり方は分かりますが、 テーブルで表示させたいと思っています。 「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を使い込んだ人は同じような画面でテーブルが 作成できるのでテーブルをとばして、クエリ、 フォームと進まれるのではないでしょうか テーブルはシステムの土台です。しっかり抑えておきましょう
お礼
chayamatiさん、いつも大変お世話になっております。 長文にわたりご教示いただきまして、誠にありがとうございます。 今後とも、よろしくお願いいたします。