資材マスタは3つのテーブルで構成されています。資材そのものの基本情報を管理するT60資材M、資材の種別を分類するT60資材種別、ロット単位の単価と旧単価を管理するT60資材ロット旧単価です。それぞれの役割と構造を見ていきます。
テーブル構成の全体像
資材の基本情報・分類・単価履歴を別テーブルに分けることで、資材の種類が増えても単価変更の履歴を圧迫せずに管理できる設計になっています。
テーブル構成
| テーブル名 | 役割 |
|---|---|
| T60資材M | 資材そのものの基本情報(名称・仕様・取引先・在庫・単価等) |
| T60資材種別 | 資材の種別(分類)を管理するコードマスタ |
| T60資材ロット旧単価 | ロット別単価・旧単価の履歴を管理 |
T60資材M テーブル
資材品の基本情報を管理するメインテーブルです。所属部署・種別・取引先といった各種コードのほか、在庫数・単価・有効フラグなど、資材管理に必要な情報を1レコードにまとめて持っています。
T60資材M テーブルデザインビュー
フィールド構成
| フィールド名 | データ型 | 役割 |
|---|---|---|
| ID | オートナンバー型 | 資材IDは自動付与 |
| 所属部署コード | 短いテキスト | 発注部署(T02従業員所属部署に連動) |
| 種別コード | 短いテキスト | 資材品の種別(T60資材種別に連動) |
| 資材名 | 短いテキスト | 資材品の名称・品番 |
| 仕様 | 短いテキスト | 資材品の仕様・補足 |
| 取引先コード | 数値型 | 資材品の手配先(T05取引先Mに連動) |
| 備考 | 短いテキスト | 備考・メモ |
| 単価 | 数値型 | 購入価格 |
| 単位 | 短いテキスト | 購入品の単位 |
| 在庫数 | 数値型 | 資材品の在庫(最新在庫数) |
| 在庫更新日 | 日付/時刻型 | 在庫数の更新日 |
| 在庫メモ | 短いテキスト | 在庫数の備考・メモ |
| 棚卸 | Yes/No型 | 棚卸し実施有無 |
| 有効 | Yes/No型 | 現状資材品の有効無効 |
| 登録日 | 日付/時刻型 | 登録日 |
| ロット単価 | Yes/No型 | ロット別単価の有無 |
| 登録者コード | 数値型 | 登録者(T01従業員Mに連動) |
| 最低発注数量 | 数値型 | 最低発注数量がある場合(デフォルト0) |
| 元資材名 | 短いテキスト | 資材名変更時に旧資材名の保管 |
T60資材種別 テーブル
資材の種別を管理するコードマスタです。種別コードと種別記号(略称)を持ち、並び順フィールドでID・コード順に依存しない任意の表示順を設定できます。
T60資材種別 テーブルデザインビュー
フィールド構成
| フィールド名 | データ型 | 役割 |
|---|---|---|
| ID | オートナンバー型 | 主キー |
| 種別コード | 短いテキスト | 種別コード |
| 種別 | 短いテキスト | 種別 |
| メモ | 短いテキスト | 備考・メモ |
| 並び順 | 数値型 | IDや種別コード順にせず強制的に並び替え |
| 種別記号 | 短いテキスト | 種別を略称で活用 |
種別コードの実データは以下の7種類です。
T60資材種別 登録データ
| 種別コード | 種別 | メモ | 並び順 | 種別記号 |
|---|---|---|---|---|
| 01 | 資材全般 | 原材料・顔料・添加剤・原反など製品づくりに必要な資材全般 | 1 | ZA |
| 02 | 金型・版・治工具 | 金型・版・治工具など製品づくり用の道具 | 6 | KA |
| 03 | 設備全般 | 工場設備・機械メンテナンス部材や工事など | 3 | SE |
| 04 | 副資材 | ビジネス用品・備品・段ボールなどの消耗品 | 5 | FU |
| 05 | 支給品 | 製品の一部になる部品購入(有償・無償) | 2 | SI |
| 06 | 半製品・完成品 | 半製品・完成品の購入(図番で手配) | 4 | ZU |
| 07 | その他 | 突発的な事象処理など | 7 | TA |
T60資材ロット旧単価 テーブル
ロット単位で単価が変わる資材の単価履歴と、単価改定時の旧単価を1つのテーブルで管理します。「ロット別」「旧単価」の2つのYes/No型フラグで、格納データがどちらの性質のレコードかを判別する設計です。
T60資材ロット旧単価 テーブルデザインビュー
フィールド構成
| フィールド名 | データ型 | 役割 |
|---|---|---|
| ID | オートナンバー型 | 主キー |
| 資材ID | 数値型 | T60資材MのIDと連動 |
| 資材名 | 短いテキスト | T60資材Mの資材名を保存(クエリを軽くするための冗長保持) |
| 登録日 | 日付/時刻型 | ロット単価・旧単価登録日 |
| ロット | 短いテキスト | ロット単価のロット数 |
| 単位 | 短いテキスト | 資材名の単位 |
| 前〜 | Yes/No型 | ロット数の前に「〜」をつける(〜1000のような表記) |
| 後〜 | Yes/No型 | ロット数の後に「〜」をつける(1000〜のような表記) |
| 単価 | 数値型 | ロット単価 |
| 備考 | 短いテキスト | 備考・メモ |
| ロット別 | Yes/No型 | 格納データがロット別単価の場合YES |
| 旧単価 | Yes/No型 | 格納データが旧単価の場合YES |
まとめ
資材マスタはT60資材Mを軸に、種別分類をT60資材種別、単価の履歴をT60資材ロット旧単価に分離した3テーブル構成です。単価が変動しやすい資材特有の事情に対応するため、単価情報だけを別テーブルに切り出し、ロット別単価と旧単価の両方を1つのテーブルで柔軟に管理できるようにしています。
本サイトではマクロを用いた構築手順を中心に紹介していますが、決してマクロを唯一の正解として推奨しているわけではありません。VBAが扱える環境であれば、より多彩で柔軟なプログラムが組めるVBAでの構築をむしろ推奨したいと考えています。
ここでマクロという選択肢を提示しているのは、VBAにハードルを感じている方への「もう一つの入り口」として、また将来的な後継者への引き継ぎ負荷を抑えるという実務上のメリットを考慮してのことです。設計の考え方の一つとして、状況に合わせて活用してください。