受注管理「テーブル設計」

テーブル構成の全体像

受注管理は日々の受注データを格納する T20受注M を中心に、分納時の帳票印刷用データを一時的に保持する T20受注分納印刷、手配番号の自動採番を管理する T20受注自動手番 の3テーブルで構成されています。3テーブル間で正式なリレーションシップは組んでおらず、それぞれ独立したテーブルとして機能しています。

テーブル構成

テーブル名 役割
T20受注M 受注データを格納するメインテーブル
T20受注分納印刷 分納時の注文書・納品書印刷用の一時保管テーブル
T20受注自動手番 手配番号(注文番号)の自動採番を管理するテーブル

H2T20受注M テーブル

受注データ本体を格納するメインテーブルです。手配番号(注文番号)は登録者が任意に設定できますが、主キーとして設定されておりフォーム上で重複登録ができないよう制御されています。受注区分によって「製品マスタあり」「製品マスタなし」「材料受注」「シート受注」の4パターンを判別する設計になっています。

T20受注M テーブルデザインビュー

T20受注M フィールド構成

フィールド名 データ型 説明
ID オートナンバー型
受注区分 短いテキスト 1製品マスタあり、2製品マスタなし、3材料受注、4シート受注
受注日 日付/時刻型 受注登録日
取引先コード 数値型 取引先マスタと連動
手配番号 短いテキスト 手配番号(注文番号)※主キー
図番ID 数値型 製品マスタと連動(マスタなしは空欄)
図番 短いテキスト 製品マスタと連動(マスタなしは任意図番)
納期 日付/時刻型 客先納期
数量 数値型 注文数量
単価 数値型 製品単価
備考 短いテキスト 備考・メモ
分納残数 数値型 納品後、残数更新(受注時=数量)
分納回数 数値型 納品回数(受注時はゼロ)
訂正日 日付/時刻型 受注訂正があった場合の訂正日
取消日 日付/時刻型 受注取消があった場合の取消日
取消 Yes/No型 取消時のフラグ
発行 Yes/No型 製造依頼書発行の可否フラグ
納期回答 日付/時刻型 納期回答をした場合に回答日を格納
成形課 Yes/No型 成形課管轄の場合
加工課 Yes/No型 加工課管轄の場合
印刷課 Yes/No型 印刷課管轄の場合
従業員コード 数値型 受注登録者の登録
インポート Yes/No型 受注データをインポートした場合の可否フラグ
登録なし Yes/No型 マスタなし受注時の可否フラグ
予定 日付/時刻型 生産予定が組まれた場合に日付が更新される
成形フォーキャスト Yes/No型 成形のフォーキャスト発注として受注処理した場合のフラグ
加工フォーキャスト Yes/No型 加工のフォーキャスト発注として受注処理した場合のフラグ
現品票区分 短いテキスト 1: 成形課 2: 加工課(製品マスタに連動)
仕入先コード 数値型 仕入れ単価
仕入先単価 数値型 仕入れ単価
材料手配 Yes/No型 材料受注の場合にフラグ
生管予定 Yes/No型 生産管理が予定組みした場合のフラグ
生管予定日 日付/時刻型 生産管理が予定組みされた初日の日付
生管メモ 短いテキスト 生産管理のメモ・備考
生管回答 Yes/No型 生産管理から客先に納期回答をしたかの可否フラグ
本社転送日 日付/時刻型 本社へ転送がある場合の転送日
出荷情報 短いテキスト 製品出荷時のメモ・備考
エクスポート Yes/No型 データをエクセルエクスポートした場合のフラグ
更新者コード 数値型 編集更新した人のログ
納期設定 日付/時刻型 拡張用(未使用)
成形課・加工課・印刷課をそれぞれ独立したYes/No型フィールドとして持たせることで、1件の受注が複数課にまたがるケースでも、テーブルを分けずに同一レコード内でどの課が関与しているかを判定できます。集計やクエリの絞り込みも各フラグのTrue/Falseで完結するため、シンプルな構造のまま複雑な受注パターンに対応できる設計です。

T20受注分納印刷 テーブル

注文数量を複数回に分けて納品する場合に、分納ごとの注文書・納品書を印刷するためのデータを一時的に保持するテーブルです。T20受注Mの内容をベースに、印刷時点で必要な情報のみを抽出して格納する構成になっています。

T20受注分納印刷 テーブルデザインビュー

T20受注分納印刷 フィールド構成

フィールド名 データ型 説明
取引先コード 数値型
手配番号 短いテキスト 手配番号(注文番号)
図番 短いテキスト 製品マスタと連動
図番ID 数値型 製品マスタと連動
納期 日付/時刻型 納期(客先納期)
数量 数値型 注文数量
単価 数値型 注文単価
分納残数 数値型 分納後の残数を格納
分納回数 数値型 分納した回数をカウントして格納
従業員コード 数値型 分納伝票発行者コード
備考 短いテキスト 備考・メモ
設定数量 数値型 拡張機能用(未使用)
設定納期 日付/時刻型 拡張機能用(未使用)
2次加硫条件 短いテキスト 製品マスタと連動
受注日 日付/時刻型 元の受注日(受注マスタと連動)

T20受注自動手番 テーブル

手配番号(注文番号)は登録者が任意に設定できますが、客先からの注文番号がない場合に備えて自動採番も選べるようになっています。このテーブルは自動採番された手配番号を管理し、重複が発生しないように制御しています。

T20受注自動手番 テーブルデザインビュー

T20受注自動手番 フィールド構成

フィールド名 データ型 説明
ID オートナンバー型
自動手配番号 短いテキスト 自動採番された手配番号
登録日 日付/時刻型 採番登録日
削除フラグ Yes/No型 削除フラグ

まとめ

受注管理は、受注データ本体を持つT20受注M、分納印刷用の一時データを持つT20受注分納印刷、手配番号の自動採番を管理するT20受注自動手番の3テーブルで構成されています。テーブル間に正式なリレーションは組まず、それぞれが独立した役割を担う設計です。

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

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