取引先マスタの一覧画面です。取引区分のオプショングループと4つの検索条件を組み合わせて絞り込みができます。コード・取引先名・略称・フリガナのいずれかを入力するたびにリストがリアルタイムで絞り込まれる設計です。
取引先リスト画面の構成
メインメニューから取引先マスタボタンで起動します。取引区分の切り替え・複数条件での検索・詳細表示・新規登録をこの画面から一括して操作できます。
フォームビュー
画面の概要
画面の概要
| 項目 | 内容 |
|---|---|
| 取引区分 | オプショングループで法人顧客・仕入先・顧客/仕入先・個人顧客・その他を切り替え。リストと連動して絞り込まれる |
| コード検索 | 取引先コードで絞り込むコンボボックス |
| 取引先名検索 | 取引先名で絞り込むコンボボックス |
| 略称検索 | 略称で絞り込むコンボボックス |
| フリガナ検索 | フリガナで絞り込むコンボボックス |
| 再検索ボタン | 全検索条件をNullにクリアして全件表示に戻す |
| リスト(サブフォーム) | 取引先コード・取引先名・略称・フリガナ・住所・電話番号を1行で表示 |
| 詳細ボタン | 選択行の全情報を編集フォームにポップアップ表示 |
| 新規登録ボタン | 新規登録フォームを開く |
| 件数 | フッターに常時表示。絞り込み結果と連動して更新 |
| 閉じるボタン | フォームを閉じる |
デザインビューで見る仕組み
フォームの構造とプロパティ設定を確認します。
デザインビュー
デザインビューの概要
デザインビューの概要
| 項目 | 設定内容 |
|---|---|
| レコードソース | 空欄(非連結フォーム) |
| 取引区分 | オプショングループ。詳細部に配置 |
| 検索エリア | コード・取引先名・略称・フリガナの4つのコンボボックスを横並びで配置 |
| サブフォーム | F05取引先リスト検索サブを埋め込み |
| フォームフッター | 件数・新規登録・登録内容調査・閉じるボタンを配置 |
クエリ:Q05取引先リスト検索サブの構成
サブフォームのレコードソースになるクエリです。T05取引先Mを元に表示フィールドの加工と4条件の絞り込みを処理します。各検索条件が空欄のときは全件表示、入力があれば入力値で絞り込まれます。
クエリデザインビュー
クエリの概要
クエリの概要
| 項目 | 内容 |
|---|---|
| クエリ名 | Q05取引先リスト検索サブ |
| 種別 | 選択クエリ |
| テーブル | T05取引先M |
フィールド構成
Q05取引先リスト検索サブ フィールド構成
| フィールド | テーブル | 並べ替え | 抽出条件 | 内容 |
|---|---|---|---|---|
| 取引先コード | T05取引先M | Like [Forms]![F05取引先リスト検索]![取引先コード検索] & “*” | コード検索と連動。空欄時は全件表示 | |
| 取引先名 | T05取引先M | Like “” & [Forms]![F05取引先リスト検索]![取引先名検索] & ““ | 取引先名検索と連動。部分一致 | |
| 略称 | T05取引先M | Like “” & [Forms]![F05取引先リスト検索]![略称検索] & ““ | 略称検索と連動。部分一致 | |
| フリガナ | T05取引先M | 昇順 | Like “” & [Forms]![F05取引先リスト検索]![フリガナ検索] & ““ | フリガナ検索と連動。部分一致 |
| 取引区分 | T05取引先M | Like “” & [Forms]![F05取引先リスト検索]![取引区分] & ““ | 取引区分オプショングループと連動 | |
| 住所:[都道府県] & [住所1] | — | 都道府県と住所1を結合して1フィールドに表示 | ||
| 電話番号 | T05取引先M | |||
| ID | T05取引先M | カレント行色変えに使用 |
4条件同時絞り込みの設計
検索条件を1つに絞るのではなく、コード・取引先名・略称・フリガナの4つを同時に機能させる設計です。それぞれの検索コンボボックスの更新後処理に再クエリを設定しているため、1つ入力するたびにリストが即座に絞り込まれます。たとえば取引区分で「仕入先」を選んだ上でフリガナ検索に「ア」と入力するだけで、仕入先の中からア行の取引先だけに絞り込めます。条件を増やすほど対象が絞られるため、件数が多くなっても目的の取引先にすばやくたどり着けます。再検索ボタンを押せば全条件がNullになり全件表示に戻るため、絞り込み解除の操作もワンタッチです。
各コントロールの設定
取引区分オプショングループ
法人顧客・仕入先・顧客/仕入先・個人顧客・その他を切り替えるオプショングループです。切り替えと同時に再クエリが実行され、サブフォームの表示が連動して絞り込まれます。
取引区分オプショングループの更新後処理にM99共通の再クエリサブマクロを設置しています。
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索 |
| コントロール | 取引区分(オプショングループ) |
| イベント | 更新後処理 |
| 呼び出し元 | M99共通 > サブマクロ:再クエリ |
検索コンボボックス(4条件)
コード・取引先名・略称・フリガナの4つの検索コンボボックスです。1つ入力するたびに再クエリが実行され、リストがリアルタイムで絞り込まれます。4つすべてが空欄のときは全件表示になります。
各検索コンボボックスの更新後処理にM99共通の再クエリサブマクロを設置しています。
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索 |
| コントロール | 各検索コンボボックス(4つ) |
| イベント | 更新後処理 |
| 呼び出し元 | M99共通 > サブマクロ:再クエリ |
カレント行の色変え
選択中の行の背景色が変わり、どの行を操作しているかが一目でわかります。条件付き書式と行色マクロの組み合わせで実現しています。
共通行色
F05取引先リスト検索サブフォームの「レコード移動時」にこのサブマクロが紐づいています。IDの値を行色コントロールにコピーすることで、条件付き書式の [行色]=[ID] が成立してカレント行の背景色が変わります。
マクロの概要
| 処理 | 内容 |
|---|---|
| 値の代入 | IDの値を行色コントロールにコピー。条件付き書式の条件が成立してカレント行の色が変わる |
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索サブ |
| コントロール | フォーム全体 |
| イベント | レコード移動時 |
| 呼び出し元 | M99共通 > サブマクロ:行色 |
Accessのフォームにおける「色」は、単なるデザイン要素ではありません。オペレーターが今どこにいて何をすべきかを直感的に伝えるための「重要なナビゲーション」だと考えています。 画面を開いた瞬間に「新規登録」か「編集」かを色で感じ取り、無[…]
サブフォームの構成(F05取引先リスト検索サブ)
Q05取引先リスト検索サブを元にフォームウィザードで作成します。表示項目は取引先コード・取引先名・略称・フリガナ・住所・電話番号の1行レイアウトです。
主なプロパティ設定
| プロパティ | 設定値 |
|---|---|
| 移動ボタン | いいえ |
| コントロールボックス | いいえ |
| 閉じるボタン | いいえ |
| 追加の許可 | いいえ |
| レコード移動時 | M99共通.行色 |
詳細部のプロパティ設定
| プロパティ | 設定値 |
|---|---|
| 背景色 | 背景1, 暗め5% |
| 代替背景色 | 背景1 |
各コントロールの共通プロパティ
| プロパティ | 設定値 |
|---|---|
| 高さ | 0.6cm |
| 背景色 | 背景1, 暗め5% |
| フォント名 | メイリオ |
| フォントサイズ | 9 |
| 編集ロック | はい |
フォームウィザードを使ってテンプレート化します。 ウィザードは「最短のひな形作成ツール」 表形式フォームは、表示項目が毎回異なるためコピペで作ることができません。そこで「フォームウィザード」をひな形作成の自動化ツールとして活用しています[…]
詳細ボタン
選択行の全情報を編集フォームにポップアップ表示します。詳細ボタンのマクロ構成は編集ページで詳しく解説しています。
◆リンクカード:取引先マスタ編集ページ
新規登録ボタン
新規登録フォームをポップアップで開きます。
サブマクロ:新規登録開く
新規登録ボタンの「クリック時」にこのサブマクロが紐づいています。F05取引先新規をフォームビューで開くだけのシンプルな構成です。
マクロの概要
| 処理 | 内容 |
|---|---|
| フォームを開く | F05取引先新規をフォームビューで開く |
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索 |
| コントロール | 新規登録ボタン |
| イベント | クリック時 |
| 呼び出し元 | M05取引先 > サブマクロ:新規登録開く |
再検索ボタン
4つの検索コンボボックスと取引区分をすべてNullにクリアして全件表示に戻します。
サブマクロ:リスト再検索
再検索ボタンの「クリック時」にこのサブマクロが紐づいています。5つの条件をすべてNullにしてから再クエリを実行することで、全件表示の初期状態に戻ります。
マクロの概要
| ステップ | 処理 | 内容 |
|---|---|---|
| 1〜5 | 値の代入 | 4つの検索コンボボックスと取引区分をNullにクリア |
| 6 | 再クエリ | フォーム内の全クエリを更新して全件表示に戻す |
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索 |
| コントロール | 再検索ボタン |
| イベント | クリック時 |
| 呼び出し元 | M05取引先 > サブマクロ:リスト再検索 |
閉じるボタン
サブマクロ:閉じる
閉じるボタンの「クリック時」にこのサブマクロが紐づいています。オブジェクト名を指定せずカレントフォームを閉じる設計のため、どのフォームからでも使い回せます。
マクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F05取引先リスト検索 |
| コントロール | 閉じるボタン |
| イベント | クリック時 |
| 呼び出し元 | M99共通 > サブマクロ:閉じる |
フォームごとに同じ処理のマクロを個別に作ると、マクロの数が際限なく増えて管理が大変になります。M99共通マクロはどのフォームでも使い回せる処理をサブマクロとして一箇所に集約したものです。コントロール名を統一しておくことでフォームを問わず同じ[…]
まとめ
取引先リストは取引区分の切り替えと4条件の検索を組み合わせた絞り込み設計が核になっています。各検索条件が空欄のときは全件表示、入力するたびに即時絞り込まれるため件数が多い取引先データでも素早く目的の行にたどり着けます。詳細ボタン・新規登録ボタンはこのフォームを起点に各フォームへ遷移する設計で、取引先マスタの操作はすべてこの画面から始まります。
本サイトではマクロを用いた構築手順を中心に紹介していますが、決してマクロを唯一の正解として推奨しているわけではありません。VBAが扱える環境であれば、より多彩で柔軟なプログラムが組めるVBAでの構築をむしろ推奨したいと考えています。
ここでマクロという選択肢を提示しているのは、VBAにハードルを感じている方への「もう一つの入り口」として、また将来的な後継者への引き継ぎ負荷を抑えるという実務上のメリットを考慮してのことです。設計の考え方の一つとして、状況に合わせて活用してください。