仕入先製品マスタ「リスト」

仕入先製品マスタのリスト画面は、図番検索と仕入先検索の2条件を組み合わせて、どの図番をどこで作っているかを一覧確認できる画面です。成形課・加工課・印刷課・材料課の担当状況が丸印で一目でわかるほか、発注元の客先名も併記されています。


仕入先製品リスト画面の構成

図番検索と仕入先検索の2つの非連結コンボボックスで絞り込みを行い、一覧には仕入先単価・担当課・取引先名(客先)などが表示されます。詳細ボタンから編集画面へ、新規登録ボタンから新規登録画面へ遷移します。

フォームビュー

実際の運用画面です。図番ごとに担当課(成形・加工・印刷・材料)が丸印で表示され、複数課を担当する図番は行が分かれて表示されます。

仕入先製品マスタリスト フォームビュー

画面の概要

一覧に表示される主な項目は以下の通りです。

仕入先製品リスト 表示項目

項目 内容
図番 製品マスタの図番
仕入先名 発注先(仕入先コード・仕入先名)
仕入先単価 発注単価(自社製造は0)
備考 仕入先備考
取引先名 発注元の客先名
成形/加工/印刷/材料 担当課の丸印表示
有効/手配 各フラグの状態
成形課・加工課・印刷課・材料課の4項目は、通常のチェックボックス(四角)ではなく丸印のオプションボタン風の見た目で表示されています。四角のチェックが並ぶより、担当課がどこか視覚的にパッと見分けやすくなっています。

デザインビューで見る仕組み

フォームビューと同じ並びのコントロールが、フォームヘッダーと詳細セクションに配置されています。図番検索・仕入先検索は非連結コンボボックスで、値をQ30仕入先製品リストサブの抽出条件に直接参照させています。

デザインビュー

F30仕入先製品リスト デザインビュー

デザインビューの概要

図番検索・仕入先検索は「非連結」のコンボボックスとして配置されており、テーブルの特定フィールドとは結び付いていません。再検索ボタン押下時にクエリ側からこの値を直接参照する設計です。


クエリ:Q30仕入先製品リストサブの構成

一覧表示の元になるクエリです。T30仕入先製品Mを軸に、仕入先名の取得用と客先名の取得用でT05取引先Mを2回結合しています。

クエリデザインビュー

Q30仕入先製品リストサブ クエリデザインビュー

クエリの概要

T30仕入先製品Mの仕入先コードとT05取引先Mを結合して仕入先名を取得し、同時に取引先コードで別名のT05取引先M_1(自己結合)と結合して客先名も取得しています。1つの取引先マスタを「仕入先」と「客先」という2つの役割で使い分けている点がポイントです。

Q30仕入先製品リストサブ フィールド構成

フィールド名 参照テーブル 役割
ID T30仕入先製品M 主キー
図番/図番ID T30仕入先製品M 製品マスタの図番
仕入先コード T30仕入先製品M 発注先コード
仕入先名(略称) T05取引先M 発注先名の表示用
取引先コード T30仕入先製品M 発注元の客先コード
取引先名(略称) T05取引先M_1(自己結合) 発注元の客先名の表示用
仕入先単価/備考 T30仕入先製品M 単価・備考
成形課/加工課/印刷課/材料課 T30仕入先製品M 担当課フラグ
有効/手配 T30仕入先製品M 状態フラグ

2条件同時絞り込みの設計

図番検索と仕入先検索の2つの条件を、それぞれ独立したLike式で抽出しています。どちらか一方だけの入力でも、両方の入力でも絞り込みが機能する設計です。

フィールド 抽出条件
仕入先コード Is Null Or Like "*" & [Forms]![F30仕入先製品リスト]![仕入先検索] & "*"
図番 Is Null Or Like "*" & [Forms]![F30仕入先製品リスト]![図番検索] & "*"
仕入先製品マスタは「発注先(仕入先)」と「発注元(客先)」の両方の名称を表示しますが、テーブルはどちらもT05取引先Mの1つだけです。取引先コードと仕入先コード、それぞれ別のフィールドから同じテーブルを2回結合することで、テーブルを増やさずに「仕入先名」と「客先名」を両方表示できています。

各コントロールの設定

メインメニューから開くマクロ、検索条件の入力欄、再検索・新規登録・詳細・件数の各コントロールをまとめて解説します。

メインメニューから開くマクロ

メインメニューの仕入先製品マスタボタンから、このリスト画面を開くマクロです。

サブマクロ:仕入先製品マスタ

サブマクロのテキスト表示
サブマクロ:仕入先製品マスタ
 フォームを開く
  フォーム名:F30仕入先製品リスト
  ビュー:フォーム ビュー
  フィルター名:(空欄)
  Where条件式:(空欄)
  データモード:(空欄)
  ウィンドウモード:標準
 マクロの中止
 サブマクロの最後

マクロ概要

アクション 内容
フォームを開く F30仕入先製品リストをフォームビューで開く

マクロの配置場所

配置先 コントロール
メインメニュー 仕入先製品マスタボタン

図番検索・仕入先検索ボックス

どちらも非連結のコンボボックスです。入力された値はテーブルに保存されず、再検索ボタン押下時にQ30仕入先製品リストサブの抽出条件として参照されるだけの一時的な入力欄です。検索ワードの一部一致で絞り込まれます。

再検索ボタン

検索条件を反映して一覧を再表示するマクロです。

サブマクロ:リスト再検索

サブマクロのテキスト表示
サブマクロ:リスト再検索
 値の代入
  アイテム:[図番検索]
  式:Null
 値の代入
  アイテム:[仕入先検索]
  式:Null
 再クエリ
  コントロール名:(空欄)
 マクロの中止
 サブマクロの最後

マクロの概要

アクション 内容
値の代入 図番検索をNullに戻す
値の代入 仕入先検索をNullに戻す
再クエリ 一覧を再表示

マクロの配置場所

配置先 コントロール
F30仕入先製品リスト 再検索ボタン

新規登録ボタン

新規登録画面を開くマクロです。登録内容や入力チェックの詳細は新規登録ページで解説します。

サブマクロ:仕入先製品マスタ新規開く

サブマクロのテキスト表示
サブマクロ:仕入先製品マスタ新規開く
 フォームを開く
  フォーム名:F30仕入先製品新規
  ビュー:フォーム ビュー
  フィルター名:(空欄)
  Where条件式:(空欄)
  データモード:(空欄)
  ウィンドウモード:標準
 マクロの中止
 サブマクロの最後

マクロの概要

アクション 内容
フォームを開く F30仕入先製品新規をフォームビューで開く

マクロの配置場所

配置先 コントロール
F30仕入先製品リスト 新規登録ボタン

◆リンクカード:仕入先製品マスタ「新規登録」の解説ページ

 

詳細ボタン

一覧の各行から編集画面を開くボタンです。開くマクロと表示内容の詳細は編集ページで解説します。

◆リンクカード:仕入先製品マスタ「編集」の解説ページ

 

件数ボックス

一覧に表示中の件数を表示するコントロールです。

項目 内容
コントロールソース =DCount("*","Q30仕入先製品リストサブ")
書式 #,##0" 件"

まとめ

仕入先製品マスタのリストは、図番検索・仕入先検索の2条件絞り込みと、1つの取引先マスタを仕入先・客先の2役で参照する自己結合が特徴です。詳細ボタン・新規登録ボタンはそれぞれ編集ページ・新規登録ページで詳しく解説します。

 

本サイトではマクロを用いた構築手順を中心に紹介していますが、決してマクロを唯一の正解として推奨しているわけではありません。VBAが扱える環境であれば、より多彩で柔軟なプログラムが組めるVBAでの構築をむしろ推奨したいと考えています。

ここでマクロという選択肢を提示しているのは、VBAにハードルを感じている方への「もう一つの入り口」として、また将来的な後継者への引き継ぎ負荷を抑えるという実務上のメリットを考慮してのことです。設計の考え方の一つとして、状況に合わせて活用してください。