製品マスタ「新規登録(各課)」

製品マスタでは課ごとに専用の新規登録フォームを用意しています。各課の詳細フォームにあるフッターの新規登録ボタンから起動する設計で、登録済みの場合はメッセージを表示して処理を中断します。

関連記事

製品マスタは13のテーブルで構成しています。T10製品Mが製品の基本情報・工程・課別フラグ・在庫情報を保持するメインテーブルで、各課の詳細情報はT11〜T14の課別テーブルに分散管理しています。工程名・工程担当・業種・工程群はマスタテーブル[…]

成形課の新規登録

成形課の新規登録は「製品マスタ 詳細:成形課」ページで解説しています。

関連記事

製品マスタの成形課情報画面です。基本情報の成形課ボタンから起動し、この図番の成形条件・金型情報・各種成形パラメータを参照・編集できます。成形課担当者(権限=3)と管理者(権限=2)が編集可能です。 成形タブボタンのマクロ 製品マスタ[…]


材料課の新規登録

材料課の情報は成形課と同じテーブルに格納されており、成形課が金型情報を登録したあとに材料課が使用する材料を登録します。業務フローの順序により図番IDは必ず存在するため、他の課のような図番ID存在チェックは不要な設計です。

材料課の詳細フォーム(製品マスタ材料情報)のフッターにある新規登録ボタンを押すと、F10製品新規材料フォームが起動します。

製品マスタ材料情報フォームのフッター(新規登録ボタン)

新規登録フォームの構成

F10製品新規材料は、材料1〜8の8列分の材料情報をまとめて登録できる非連結フォームです。ヘッダー部に図番・取引先が表示され、親図番が存在する場合は親図番欄と親図番情報呼出ボタンが表示されます。

F10製品新規材料 フォームビュー

F10製品新規材料 デザインビュー

コントロール構成

コントロール名 種類 内容
図番ID 非連結テキスト F00メインメニューから引き継いだ図番ID(非表示)
親図番ID 非連結テキスト DLookupで取得した親図番ID(非表示)
図番 非連結テキスト DLookupで取得した図番を表示
取引先コード 非連結コンボ DLookupで取得した取引先コードを表示
親図番 非連結テキスト 親図番が存在する場合に表示(通常は非表示)
親図番情報呼出 コマンドボタン 親図番が存在する場合に表示(通常は非表示)
配合番号1〜8 非連結コンボ 材料ごとの配合番号
材料1〜8 非連結テキスト 材料名
色調1〜8 非連結テキスト 色調
厚み1〜8 非連結テキスト 厚み
ロール巾1〜8 非連結テキスト ロール巾
カット寸法1〜8 非連結テキスト カット寸法
1本重量1〜8 非連結テキスト 1本あたりの重量
重量公差1〜8 非連結コンボ 重量公差
使用本数1〜8 非連結テキスト 使用本数
材料備考1〜8 非連結テキスト 備考
1ショット総重量 非連結テキスト 自動計算で表示
材料情報登録日 非連結テキスト 登録時に自動でDate()をセット

新規登録フォームを開くマクロ

材料課の詳細フォームにある新規登録ボタンに設定されたマクロです。配合番号1のNullチェックで登録済みかどうかを判定し、未登録の場合のみF10製品新規材料を起動します。

サブマクロ:材料開く

サブマクロのテキスト表示
サブマクロ:材料開く

  If IsNull([配合番号1]) Then

    フォームを開く (F10製品新規材料, フォーム ビュー, , , , 標準)

    値の代入
      アイテム = [Forms]![F10製品新規材料]![図番ID]
      式    = [Forms]![F00メインメニュー]![図番ID]

    値の代入
      アイテム = [Forms]![F10製品新規材料]![親図番ID]
      式    = DLookUp("親図番ID","T11製品成形","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規材料]![図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規材料]![取引先コード]
      式    = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規材料]![親図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F10製品新規材料]![親図番ID]")

    If [Forms]![F10製品新規材料]![図番ID] <> [Forms]![F10製品新規材料]![親図番ID] Then

      値の代入
        アイテム = [Forms]![F10製品新規材料]![親図番].[Visible]
        式    = True

      値の代入
        アイテム = [Forms]![F10製品新規材料]![親図番情報呼出].[Visible]
        式    = True

    If 文の最後
    マクロの中止

  Else

    メッセージボックス
      メッセージ  この図番の材料情報は登録済ですので新規登録できません。
      警告音    はい
      メッセージの種類  警告
      メッセージ タイトル  登録不可

    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull([配合番号1]) 配合番号1のNullチェックで登録済みを判定
フォームを開く F10製品新規材料をフォームビューで起動
値の代入(図番ID) F00メインメニューの図番IDを引き継ぎ
値の代入(親図番ID) T11製品成形からDLookupで取得
値の代入(図番・取引先) T10製品MからDLookupで取得
値の代入(親図番) 図番IDと親図番IDが異なる場合のみ表示
メッセージボックス 登録済みの場合は警告を表示して中止

マクロの設置場所

設置場所 ボタン名
製品マスタ材料情報(F11製品成形)フッター 新規登録

このシステムでは材料課と成形課のデータを同じテーブルに格納しています。成形課が金型情報を登録してはじめて材料課が使用できる業務フローになっているため、材料課の新規登録フォームを開く時点では図番IDが必ずテーブルに存在することが保証されます。

他の課では図番IDの有無をIF文でチェックしてから追加する処理が必要ですが、材料課ではその処理をまるごと省略できます。チェックロジックを書かずに済む理由をコードではなく業務設計で担保している点が、このシステムの実務的なセンスが光るところです。

登録ボタンのマクロ

材料1の必須項目(配合番号・材料・色調・厚み・カット寸法・1本重量・公差・使用本数)のNullチェックを行い、確認ダイアログを経てQ11製品新規材料更新クエリで登録します。登録完了後はM10製品.材料表示マクロを実行してF11製品成形フォームの表示を最新化します。

サブマクロ:材料登録

サブマクロのテキスト表示
サブマクロ:材料登録

  If IsNull([配合番号1]) Then
    メッセージボックス (配合番号が入力されていません, はい, 警告, 未入力)
    コントロールの移動  配合番号1
    マクロの中止
  If 文の最後

  If IsNull([材料1]) Then ~ If 文の最後
  If IsNull([色調1]) Then ~ If 文の最後
  If IsNull([厚み1]) Then ~ If 文の最後
  If IsNull([カット寸法1]) Then ~ If 文の最後
  If IsNull([1本重量1]) Then ~ If 文の最後
  If IsNull([公差1]) Then ~ If 文の最後
  If IsNull([使用本数1]) Then ~ If 文の最後

  If MsgBox("製品マスタに材料情報の新規登録してよしいですか?",4+32,"確認")=6 Then

    メッセージの設定(いいえ)
    クエリを開く (Q11製品新規材料更新, データシート, 編集)
    メッセージボックス (製品マスタに材料情報を登録しました, はい, なし, 登録完了)
    マクロの実行 (M10製品.材料表示)
    ウィンドウを閉じる (フォーム, F10製品新規材料, 確認)
    マクロの中止

  Else

    メッセージボックス (処理を中止します, はい, なし, 中止)
    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull チェック(材料1各項目) 配合番号・材料・色調・厚み・カット寸法・1本重量・公差・使用本数の必須チェック
MsgBox 確認 登録前に確認ダイアログを表示
クエリを開く Q11製品新規材料更新で材料情報を登録
マクロの実行 M10製品.材料表示でF11製品成形の表示を最新化
ウィンドウを閉じる F10製品新規材料を閉じてF11製品成形に戻る

マクロの設置場所

設置場所 ボタン名
F10製品新規材料 フッター 登録

登録クエリの構成

登録ボタンのマクロから呼び出されるQ11製品新規材料更新は、T11製品成形テーブルを図番IDをキーにして更新するクエリです。材料課と成形課は同じテーブルにデータを格納しているため、更新対象テーブルはT11製品成形になります。F10製品新規材料フォームの入力内容を該当レコードに一括で書き込みます。

Q11製品新規材料更新クエリ(一部)

Q11製品新規材料更新クエリの構成

項目 内容
クエリの種類 更新クエリ
更新対象テーブル T11製品成形
抽出条件 [Forms]![F10製品新規材料]![図番ID]
更新フィールド 配合番号1〜8・材料1〜8・色調1〜8・厚み1〜8・カット寸法1〜8・1本重量1〜8・公差1〜8・使用本数1〜8・材料備考1〜8・1ショット総重量・材料登録日・ロール巾1〜8

クリアボタンのマクロ

入力済みの全フィールドをNullにリセットします。材料1〜8の全項目(配合番号・材料・色調・厚み・ロール巾・カット寸法・1本重量・重量公差・使用本数・材料備考)と登録日をまとめてクリアします。

サブマクロ:材料クリア

サブマクロのテキスト表示
サブマクロ:材料クリア

  値の代入 ([配合番号1], Null)
  値の代入 ([配合番号2], Null)
  ~
  値の代入 ([配合番号8], Null)
  値の代入 ([材料1], Null)
  ~
  値の代入 ([材料8], Null)
  値の代入 ([色調1], Null)
  ~
  値の代入 ([色調8], Null)
  値の代入 ([厚み1], Null)
  ~
  値の代入 ([厚み8], Null)
  値の代入 ([カット寸法1], Null)
  ~
  値の代入 ([カット寸法8], Null)
  値の代入 ([1本重量1], Null)
  ~
  値の代入 ([1本重量8], Null)
  値の代入 ([公差1], Null)
  ~
  値の代入 ([公差8], Null)
  値の代入 ([使用本数1], Null)
  ~
  値の代入 ([使用本数8], Null)
  値の代入 ([材料備考1], Null)
  ~
  値の代入 ([材料備考8], Null)
  値の代入 ([登録日], Date())
  マクロの中止
サブマクロの最後

マクロの概要

アクション 内容
値の代入(各フィールド, Null) 配合番号・材料・色調・厚み・カット寸法・1本重量・公差・使用本数・材料備考(各1〜8)をクリア
値の代入(登録日, Date()) 登録日を本日の日付にリセット

マクロの設置場所

設置場所 ボタン名
F10製品新規材料 フッター クリア

加工課の新規登録

加工課の詳細フォーム(製品マスタ加工情報)のフッターにある新規登録ボタンを押すと、F10製品新規加工フォームが起動します。加工課は材料課と異なり、T12製品加工テーブルへの図番IDの存在を登録時にクエリで確認する設計です。

製品マスタ加工情報フォームのフッター(新規登録ボタン)


新規登録フォームの構成

F10製品新規加工は、材料情報1〜4の4列分の加工情報をまとめて登録できる非連結フォームです。ヘッダー部に図番・図番ID・取引先が表示されます。

F10製品新規加工 ポップアップフォームビュー

F10製品新規加工 ポップアップデザインビュー

コントロール構成

コントロール名 種類 内容
図番ID 非連結テキスト DLookupで取得した図番ID(表示)
図番 非連結テキスト DLookupで取得した図番を表示
取引先コード 非連結コンボ DLookupで取得した取引先コードを表示
材料購入先1〜4 非連結コンボ 材料の購入先
材料情報1〜4 非連結テキスト 材料情報
加工先1〜4 非連結コンボ 加工先
基準サイズ1〜4 非連結コンボ 基準サイズ
取り数1〜4 非連結テキスト 取り数
図面管理番号 非連結テキスト 図面管理番号
図面インデックス 非連結テキスト 図面インデックス
作業仕様書番号 非連結テキスト 作業仕様書番号
治具情報 非連結テキスト 治具情報
支給品情報 非連結テキスト 支給品情報
加工備考 非連結テキスト 備考
製品重量(g) 非連結テキスト 製品重量
加工情報登録日 非連結テキスト 登録時に自動でDate()をセット

新規登録フォームを開くマクロ

加工課の詳細フォームにある新規登録ボタンに設定されたマクロです。F10製品新規加工を開いてからQ10製品新規加工図番IDのDCountで登録済みかどうかを判定し、未登録の場合のみ入力を続行します。

サブマクロ:加工開く

サブマクロのテキスト表示
サブマクロ:加工開く

  フォームを開く (F10製品新規加工, フォーム ビュー, , , , 標準)

  値の代入
    アイテム = [Forms]![F10製品新規加工]![図番ID]
    式    = DLookUp("図番ID","T12製品加工","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

  If DCount("*","Q10製品新規加工図番ID")=0 Then

    値の代入
      アイテム = [Forms]![F10製品新規加工]![図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規加工]![取引先コード]
      式    = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    マクロの中止

  Else

    メッセージボックス
      メッセージ  この図番の加工情報は登録済ですので新規登録できません。編集画面から登録してください。
      警告音    はい
      メッセージの種類  警告
      メッセージ タイトル  登録不可

    ウィンドウを閉じる
      オブジェクトの種類  (空白)
      オブジェクト名   (空白)
      オブジェクトの保存  確認

    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
フォームを開く F10製品新規加工をフォームビューで起動
値の代入(図番ID) T12製品加工からDLookupで図番IDを取得してセット
DCount チェック Q10製品新規加工図番IDで登録済みを判定
値の代入(図番・取引先) 未登録の場合のみT10製品MからDLookupで取得
ウィンドウを閉じる 登録済みの場合はカレントフォームを閉じて中止

マクロの設置場所

設置場所 ボタン名
製品マスタ加工情報(F12製品加工)フッター 新規登録

登録ボタンのマクロ

材料情報1列目の必須項目チェック後、確認ダイアログを経てT12製品加工への登録を行います。登録時にもQ10製品新規加工図番IDのDCountで図番IDの存在を再確認し、未登録なら追加クエリ→更新クエリ、登録済みなら更新クエリのみ実行します。

サブマクロ:加工登録

サブマクロのテキスト表示
サブマクロ:加工登録

  If IsNull([材料購入先1]) Then
    メッセージボックス (材料購入先が入力されていません, はい, 警告, 未入力)
    コントロールの移動 (材料購入先1)
    マクロの中止
  If 文の最後

  If IsNull([材料情報1]) Then ~ If 文の最後
  If IsNull([加工先1]) Then ~ If 文の最後
  If IsNull([基準サイズ1]) Then ~ If 文の最後
  If IsNull([取り数1]) Then ~ If 文の最後
  If IsNull([図面管理番号]) Then ~ If 文の最後
  If IsNull([図面インデックス]) Then ~ If 文の最後
  If IsNull([作業仕様書番号]) Then ~ If 文の最後
  If IsNull([製品重量]) Then ~ If 文の最後

  If MsgBox("製品マスタに加工情報の新規登録してよしいですか?",4+32,"確認")=6 Then

    If DCount("*","Q10製品新規加工図番ID")=0 Then

      値の代入
        アイテム = [Forms]![F10製品新規加工]![図番ID]
        式    = [Forms]![F00メインメニュー]![図番ID]

      メッセージの設定(いいえ)
      クエリを開く (Q10製品新規追加加工図番ID, データシート, 編集)
      クエリを開く (Q11製品新規加工更新, データシート, 編集)
      メッセージボックス (製品マスタに加工情報を登録しました, はい, なし, 登録完了)
      マクロの実行 (M10製品.加工表示)
      ウィンドウを閉じる (フォーム, F10製品新規加工, 確認)
      マクロの中止

    Else

      メッセージの設定(いいえ)
      クエリを開く (Q11製品新規加工更新, データシート, 編集)
      メッセージボックス (製品マスタに加工情報を登録しました, はい, なし, 登録完了)
      マクロの実行 (M10製品.加工表示)
      ウィンドウを閉じる (フォーム, F10製品新規加工, 確認)
      マクロの中止

    If 文の最後

  Else

    メッセージボックス (処理を中止します, はい, なし, 中止)
    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull チェック(材料1各項目) 材料購入先・材料情報・加工先・基準サイズ・取り数・図面管理番号・図面インデックス・作業仕様書番号・製品重量の必須チェック
MsgBox 確認 登録前に確認ダイアログを表示
DCount 再チェック 登録時に図番IDの存在を再確認して多重登録を防止
クエリを開く(追加) 図番IDが未登録の場合のみQ10製品新規追加加工図番IDで追加
クエリを開く(更新) Q11製品新規加工更新で加工情報を登録
マクロの実行 M10製品.加工表示でF12製品加工の表示を最新化
ウィンドウを閉じる F10製品新規加工を閉じてF12製品加工に戻る

マクロの設置場所

設置場所 ボタン名
F10製品新規加工 フッター 登録

登録クエリの構成

登録ボタンのマクロから呼び出されるクエリは2種類です。図番IDが未登録の場合はQ10製品新規追加加工図番IDで図番IDをT12製品加工に追加してからQ11製品新規加工更新で加工情報を更新します。登録済みの場合はQ11製品新規加工更新のみ実行します。

Q10製品新規加工図番IDクエリ

図番IDの有無をチェックするクエリ

Q10製品新規追加加工図番IDクエリ(追加クエリ)

T12製品加工テーブルに図番IDを追加するクエリ

Q11製品新規加工更新クエリ(一部)

Q10製品新規加工図番IDクエリの構成

項目 内容
クエリの種類 選択クエリ
対象テーブル T12製品加工
抽出条件 [Forms]![F10製品新規加工]![図番ID]
用途 DCountで件数を確認して登録済みを判定

Q10製品新規追加加工図番IDクエリの構成

項目 内容
クエリの種類 追加クエリ
追加先テーブル T12製品加工
追加フィールド 図番ID
追加する値 [Forms]![F10製品新規加工]![図番ID]

Q11製品新規加工更新クエリの構成

項目 内容
クエリの種類 更新クエリ
更新対象テーブル T12製品加工
抽出条件 [Forms]![F10製品新規加工]![図番ID]
更新フィールド 図面管理番号・図面インデックス・支給品情報・材料情報1〜4・材料購入先1〜4・加工先1〜4・取り数1〜4・治具情報・作業仕様書番号・備考・登録日・基準サイズ1〜4・製品重量・登録者コード

クリアボタンのマクロ

入力済みの全フィールドをNullにリセットします。材料購入先・材料情報・加工先・基準サイズ・取り数(各1〜4)および図面管理番号・図面インデックス・治具情報・支給品情報・備考・作業仕様書番号・製品重量をクリアし、登録日を本日の日付にリセットします。

サブマクロ:加工クリア

サブマクロのテキスト表示
サブマクロ:加工クリア

  値の代入 ([材料購入先1], Null)
  値の代入 ([材料購入先2], Null)
  値の代入 ([材料購入先3], Null)
  値の代入 ([材料購入先4], Null)
  値の代入 ([材料情報1], Null)
  ~
  値の代入 ([材料情報4], Null)
  値の代入 ([加工先1], Null)
  ~
  値の代入 ([加工先4], Null)
  値の代入 ([基準サイズ1], Null)
  ~
  値の代入 ([基準サイズ4], Null)
  値の代入 ([取り数1], Null)
  ~
  値の代入 ([取り数4], Null)
  値の代入 ([図面管理番号], Null)
  値の代入 ([図面インデックス], Null)
  値の代入 ([治具情報], Null)
  値の代入 ([支給品情報], Null)
  値の代入 ([備考], Null)
  値の代入 ([作業仕様書番号], Null)
  値の代入 ([登録日], Date())
  値の代入 ([製品重量], Null)
  マクロの中止
サブマクロの最後

マクロの概要

アクション 内容
値の代入(各フィールド, Null) 材料購入先・材料情報・加工先・基準サイズ・取り数(各1〜4)および図面管理番号・図面インデックス・治具情報・支給品情報・備考・作業仕様書番号・製品重量をクリア
値の代入(登録日, Date()) 登録日を本日の日付にリセット

マクロの設置場所

設置場所 ボタン名
F10製品新規加工 フッター クリア

印刷課の新規登録

印刷課の詳細フォーム(製品マスタ印刷情報)のフッターにある新規登録ボタンを押すと、F10製品新規印刷フォームが起動します。登録済みの判定には後述の判定コントロールを使用しており、加工課とは判定方法が異なります。

製品マスタ印刷情報フォームのフッター(新規登録ボタン)


新規登録フォームの構成

F10製品新規印刷は、版情報・治具情報・導電情報の3グループを横並びに配置した非連結フォームです。各グループに5行分の入力欄があり、1行に色目・取り数・保管場所などをまとめて入力します。

F10製品新規印刷 ポップアップフォームビュー

F10製品新規印刷 ポップアップデザインビュー

コントロール構成

コントロール名 種類 内容
図番ID 非連結テキスト T14製品印刷からDLookupで取得(表示)
図番 非連結テキスト T10製品MからDLookupで取得して表示
取引先コード 非連結コンボ T10製品MからDLookupで取得して表示
印刷版1〜5 非連結テキスト 色目/取り数/保管場所をまとめて入力
印刷治具1〜5 非連結テキスト 色目/取り数/保管場所をまとめて入力
導電治具1〜5 非連結テキスト 導電種類/取り数/保管場所をまとめて入力
サラサラ チェックボックス サラサラ処理の有無
塗装 チェックボックス 塗装の有無
印刷備考 非連結テキスト 備考
印刷登録日 非連結テキスト 登録時に自動でDate()をセット
判定 非連結テキスト =[印刷版1]&[印刷治具1]&[導電治具1]

新規登録フォームを開くマクロ

印刷課の詳細フォームにある新規登録ボタンに設定されたマクロです。判定コントロールのIsNullチェックで登録済みかどうかを判定し、未登録の場合のみF10製品新規印刷を起動します。

サブマクロ:印刷開く

サブマクロのテキスト表示
サブマクロ:印刷開く

  If IsNull([判定]) Then

    フォームを開く (F10製品新規印刷, フォーム ビュー, , , , 標準)

    値の代入
      アイテム = [Forms]![F10製品新規印刷]![図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規印刷]![取引先コード]
      式    = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規印刷]![図番ID]
      式    = DLookUp("図番ID","T14製品印刷","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    マクロの中止

  Else

    メッセージボックス
      メッセージ  この図番の印刷情報は登録済ですので新規登録できません。
      警告音    はい
      メッセージの種類  警告
      メッセージ タイトル  登録不可

    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull([判定]) 判定コントロールのNullチェックで登録済みを判定
フォームを開く F10製品新規印刷をフォームビューで起動
値の代入(図番・取引先) T10製品MからDLookupで取得してセット
値の代入(図番ID) T14製品印刷からDLookupで取得してセット
メッセージボックス 登録済みの場合は警告を表示して中止

マクロの設置場所

設置場所 ボタン名
製品マスタ印刷情報(F14製品印刷)フッター 新規登録

印刷課の情報は版情報・治具情報・導電情報の3グループに分かれており、どのグループから登録が始まるかは製品によって異なります。そのため他の課のように「先頭フィールドのIsNull」で登録済みを判定することができません。

そこで判定コントロールに=[印刷版1]&[印刷治具1]&[導電治具1]を設定し、3グループの先頭フィールドを文字列として連結します。3つすべてがNullであれば連結結果もNullになるため、IsNullで未登録と判定できます。逆にどれか1つでも値があれば連結結果はNullにならないため、登録済みと判定されます。

判定ロジックをフォームのコントロールに持たせることで、マクロ側のIF条件をシンプルに保てる点がこの設計の利点です。

 

登録ボタンのマクロ

登録マクロの仕組みは加工課と同じです。判定コントロールのIsNullチェックで版・治具・導電のいずれか1件以上の入力を確認し、確認ダイアログを経てDCountで図番IDの存在を再確認します。未登録なら追加クエリ→更新クエリ、登録済みなら更新クエリのみ実行します。

加工課との主な差異は以下の通りです。

印刷課と加工課の登録マクロの差異

項目 加工課 印刷課
必須チェック対象 材料購入先1ほか9項目 判定コントロール(版・治具・導電のいずれか1件)
図番ID追加クエリ Q10製品新規追加加工図番ID Q10製品新規追加加工印刷図番ID
更新クエリ Q11製品新規加工更新 Q11製品新規印刷更新
登録後の表示更新 M10製品.加工表示 M10製品.印刷表示

サブマクロ:印刷登録

サブマクロのテキスト表示
サブマクロ:印刷登録

  If IsNull([判定]) Then
    メッセージボックス (版・治具の情報が入力されていません。いずれかの情報を1件は登録してください, はい, 警告, 未入力)
    コントロールの移動 (印刷版1)
    マクロの中止
  If 文の最後

  If MsgBox("製品マスタに印刷情報の新規登録してよしいですか?",4+32,"確認")=6 Then

    If DCount("*","Q10製品新規印刷図番ID")=0 Then

      値の代入
        アイテム = [Forms]![F10製品新規印刷]![図番ID]
        式    = [Forms]![F00メインメニュー]![図番ID]

      メッセージの設定(いいえ)
      クエリを開く (Q10製品新規追加印刷図番ID, データシート, 編集)
      クエリを開く (Q11製品新規印刷更新, データシート, 編集)
      メッセージボックス (製品マスタに印刷情報を登録しました, はい, なし, 登録完了)
      マクロの実行 (M10製品.印刷表示)
      ウィンドウを閉じる (フォーム, F10製品新規印刷, 確認)
      マクロの中止

    Else

      メッセージの設定(いいえ)
      クエリを開く (Q11製品新規印刷更新, データシート, 編集)
      メッセージボックス (製品マスタに印刷情報を登録しました, はい, なし, 登録完了)
      マクロの実行 (M10製品.印刷表示)
      ウィンドウを閉じる (フォーム, F10製品新規印刷, 確認)
      マクロの中止

    If 文の最後

  Else

    メッセージボックス (処理を中止します, はい, なし, 中止)
    マクロの中止

  If 文の最後
サブマクロの最後

マクロの設置場所

設置場所 ボタン名
F10製品新規印刷 フッター 登録

登録クエリの構成

登録ボタンのマクロから呼び出されるクエリは2種類です。図番IDが未登録の場合はQ10製品新規追加加工印刷図番IDで図番IDをT14製品印刷に追加してからQ11製品新規印刷更新で印刷情報を更新します。登録済みの場合はQ11製品新規印刷更新のみ実行します。

Q10製品新規追加印刷図番ID(追加クエリ)

T14製品印刷テーブルに図番IDを追加するクエリ

Q11製品新規印刷更新クエリ(一部)

Q10製品新規追加加工印刷図番IDクエリの構成

項目 内容
クエリの種類 追加クエリ
追加先テーブル T14製品印刷
追加フィールド 図番ID
追加する値 [Forms]![F10製品新規印刷]![図番ID]

Q11製品新規印刷更新クエリの構成

項目 内容
クエリの種類 更新クエリ
更新対象テーブル T14製品印刷
抽出条件 [Forms]![F10製品新規印刷]![図番ID]
更新フィールド サラサラ・塗装・印刷版1〜5・印刷治具1〜5・導電治具1〜5・備考・登録日・図番・登録者コード

品質管理課の新規登録

品質管理課の詳細フォーム(製品マスタ品証情報)のフッターにある新規登録ボタンを押すと、F10製品新規品証フォームが起動します。登録済みの判定は検査項目1のIsNullチェックで行います。

製品マスタ品証情報フォームのフッター(新規登録ボタン)


新規登録フォームの構成

F10製品新規品証は、検査項目1〜10を縦に並べたシンプルな構成の非連結フォームです。外観検査水準・寸法検査水準のコンボボックス、梱包仕様書・限度見本・客先指定用紙添付のチェックボックス、出荷情報・検査注意点・品証備考も合わせて登録します。

F10製品新規品証 ポップアップフォームビュー

F10製品新規品証 ポップアップデザインビュー

コントロール構成

コントロール名 種類 内容
図番ID 非連結テキスト T13製品品証からDLookupで取得(表示)
図番 非連結テキスト T10製品MからDLookupで取得して表示
取引先コード 非連結コンボ T10製品MからDLookupで取得して表示
外観検査水準 非連結コンボ 外観検査の水準
寸法検査水準 非連結コンボ 寸法検査の水準
検査項目1〜10 非連結テキスト 検査項目
2次加硫前寸法 非連結テキスト 2次加硫前の寸法
梱包仕様書 チェックボックス 梱包仕様書の有無
限度見本 チェックボックス 限度見本の有無
客先指定用紙添付 チェックボックス 客先指定用紙添付の有無
出荷情報 非連結コンボ 出荷先情報
検査注意点 非連結テキスト 検査時の注意点
品証備考 非連結テキスト 備考
品証情報登録日 非連結テキスト 登録時に自動でDate()をセット

新規登録フォームを開くマクロ

品証課の詳細フォームにある新規登録ボタンに設定されたマクロです。検査項目1のIsNullチェックで登録済みかどうかを判定し、未登録の場合のみF10製品新規品証を起動します。

サブマクロ:品証開く

サブマクロのテキスト表示
サブマクロ:品証開く

  If IsNull([検査項目1]) Then

    フォームを開く (F10製品新規品証, フォーム ビュー, , , , 標準)

    値の代入
      アイテム = [Forms]![F10製品新規品証]![図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規品証]![取引先コード]
      式    = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規品証]![図番ID]
      式    = DLookUp("図番ID","T13製品品証","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    マクロの中止

  Else

    メッセージボックス
      メッセージ  この図番の品証情報は登録済ですので新規登録できません。
      警告音    はい
      メッセージの種類  警告
      メッセージ タイトル  登録不可

    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull([検査項目1]) 検査項目1のNullチェックで登録済みを判定
フォームを開く F10製品新規品証をフォームビューで起動
値の代入(図番・取引先) T10製品MからDLookupで取得してセット
値の代入(図番ID) T13製品品証からDLookupで取得してセット
メッセージボックス 登録済みの場合は警告を表示して中止

マクロの設置場所

設置場所 ボタン名
製品マスタ品証情報(F13製品品証)フッター 新規登録

登録ボタンのマクロ

登録マクロの仕組みは加工課と同じです。検査項目1のIsNullチェックで必須入力を確認し、確認ダイアログを経てDCountで図番IDの存在を再確認します。未登録なら追加クエリ→更新クエリ、登録済みなら更新クエリのみ実行します。

加工課との主な差異は以下の通りです。

品証課と加工課の登録マクロの差異

項目 加工課 品証課
必須チェック対象 材料購入先1ほか9項目 検査項目1
図番ID追加クエリ Q10製品新規追加加工図番ID Q10製品新規追加品証図番ID
更新クエリ Q11製品新規加工更新 Q11製品新規品証更新
登録後の表示更新 M10製品.加工表示 M10製品.品証表示

サブマクロ:品証登録

マクロの設置場所

設置場所 ボタン名
F10製品新規品証 フッター 登録

登録クエリの構成

登録ボタンのマクロから呼び出されるクエリは2種類です。図番IDが未登録の場合はQ10製品新規追加品証図番IDで図番IDをT13製品品証に追加してからQ11製品新規品証更新で品証情報を更新します。登録済みの場合はQ11製品新規品証更新のみ実行します。

Q10製品新規追加品証図番ID(追加クエリ)

T13製品品証テーブルに図番IDを追加する

Q11製品新規品証更新クエリ(一部)

Q10製品新規追加品証図番IDクエリの構成

項目 内容
クエリの種類 追加クエリ
追加先テーブル T13製品品証
追加フィールド 図番ID
追加する値 [Forms]![F10製品新規品証]![図番ID]

Q11製品新規品証更新クエリの構成

項目 内容
クエリの種類 更新クエリ
更新対象テーブル T13製品品証
抽出条件 [Forms]![F00メインメニュー]![図番ID]
更新フィールド 外観検査水準・寸法検査水準・検査項目1〜10・検査注意点・出荷情報・備考・梱包仕様書・限度見本・客先指定用紙添付・登録日・登録者コード・2次加硫前寸法

生産管理の新規登録

生産管理の詳細フォーム(製品マスタ生産管理情報)のフッターにある新規登録ボタンを押すと、F10製品新規生産管理フォームが起動します。基本情報登録時にT19製品生産管理テーブルへ図番IDが自動追加されるため、他の課のような図番ID存在チェックは不要な設計です。登録済みかどうかは基準数量のIsNullで判定します。

製品マスタ生産管理情報フォームのフッター(新規登録ボタン)


新規登録フォームの構成

F10製品新規生産管理は、左の工程サブフォーム・中央の出来高検討エリア・右の生産計画用データサブフォームの3エリアで構成される非連結フォームです。登録者は中央エリアで出来高とリードタイムの数値を検討し、確定したら追加ボタンで右の生産計画用データに転記します。

F10製品新規生産管理 ポップアップフォームビュー(データ入力中)

F10製品新規生産管理 ポップアップデザインビュー

コントロール構成

コントロール名 種類 内容
図番ID 非連結テキスト T11製品成形からDLookupで取得(表示)
図番 非連結テキスト T10製品MからDLookupで取得して表示
取引先コード 非連結コンボ T10製品MからDLookupで取得して表示
取数 非連結テキスト T11製品成形からDLookupで取得
2次加硫条件 非連結テキスト T11製品成形からDLookupで取得
基準数量 非連結テキスト ボトルネック工程の時間出来高
リードタイム合計 非連結テキスト 全工程のリードタイム合計(自動計算)
出来高合計 非連結テキスト 全工程の出来高合計(自動計算・非表示)
生管情報登録日 非連結テキスト 登録時に自動でDate()をセット
閉じる判定 非連結テキスト 登録ボタン押下時に1をセット(非表示)
工程追加 非連結テキスト 追加ボタンの中継ボックス(工程名)
工程担当追加 非連結テキスト 追加ボタンの中継ボックス(工程担当)
出来高追加 非連結テキスト 追加ボタンの中継ボックス(出来高)
リードタイム追加 非連結テキスト 追加ボタンの中継ボックス(リードタイム)
工程順番追加 非連結テキスト 追加ボタンの中継ボックス(工程順番)
F10製品新規生産管理サブ サブフォーム 作業工程・工程担当(1〜16行)
F10製品新規生産管理出来高サブ サブフォーム 生産計画用データ(確定済み工程の一覧)

新規登録フォームを開くマクロ

生産管理の詳細フォームにある新規登録ボタンに設定されたマクロです。基準数量のIsNullチェックで登録済みかどうかを判定し、未登録の場合のみF10製品新規生産管理を起動します。取数と2次加硫条件はT11製品成形からDLookupで引き継ぎます。

サブマクロ:生産管理開く

サブマクロのテキスト表示
サブマクロ:生産管理開く

  If IsNull([基準数量]) Then

    フォームを開く (F10製品新規生産管理, フォーム ビュー, , , , 標準)

    値の代入
      アイテム = [Forms]![F10製品新規生産管理]![図番]
      式    = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規生産管理]![取引先コード]
      式    = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規生産管理]![取数]
      式    = DLookUp("取数","T11製品成形","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規生産管理]![2次加硫条件]
      式    = DLookUp("2次加硫条件","T11製品成形","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    値の代入
      アイテム = [Forms]![F10製品新規生産管理]![図番ID]
      式    = DLookUp("2次加硫条件","T11製品成形","[図番ID]=[Forms]![F00メインメニュー]![図番ID]")

    マクロの中止

  Else

    メッセージボックス
      メッセージ  この図番の生産管理情報は登録済ですので新規登録できません。編集ボタンより進めてください。
      警告音    はい
      メッセージの種類  警告
      メッセージ タイトル  登録不可

    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull([基準数量]) 基準数量のNullチェックで登録済みを判定
フォームを開く F10製品新規生産管理をフォームビューで起動
値の代入(図番・取引先) T10製品MからDLookupで取得してセット
値の代入(取数・2次加硫条件) T11製品成形からDLookupで取得してセット
値の代入(図番ID) T11製品成形からDLookupで取得してセット
メッセージボックス 登録済みの場合は警告を表示して中止

マクロの設置場所

設置場所 ボタン名
製品マスタ生産管理情報(F19製品生産管理)フッター 新規登録

追加ボタンのマクロ

各工程行にある追加ボタンを押すと、サブフォームの工程・工程担当と中央エリアの出来高・リードタイムを5つの中継ボックスに転記し、Q80生産管理出来高追加クエリでT80生産管理出来高テーブルに追加します。追加後は中継ボックスをNullクリアして右の生産計画用データサブフォームに即時反映します。

サブマクロ:追加1

サブマクロのテキスト表示
サブマクロ:追加1

  If IsNull([基準数量]) Then
  If 文の最後

  If IsNull([Forms]![F10製品新規生産管理]![F10製品新規生産管理サブ]![工程1]) Then
    メッセージボックス (作業工程1が登録されていません。データは追加できません, はい, 警告, 未登録)
    マクロの中止
  If 文の最後

  If IsNull([Forms]![F10製品新規生産管理]![F10製品新規生産管理サブ]![工程作業者1]) Then
    メッセージボックス (工程担当が登録されていません。データは追加できません, はい, 警告, 未登録)
    マクロの中止
  If 文の最後

  If IsNull([出来高1]) Then
    メッセージボックス (出来高1が登録されていません。データは追加できません, はい, 警告, 未登録)
    コントロールの移動 (出来高1)
    マクロの中止
  If 文の最後

  If IsNull([リードタイム1]) Then
    メッセージボックス (リードタイム1が登録されていません。データは追加できません, はい, 警告, 未登録)
    コントロールの移動 (リードタイム1)
    マクロの中止
  If 文の最後

  値の代入 ([Forms]![F10製品新規生産管理]![工程追加],
            [Forms]![F10製品新規生産管理]![F10製品新規生産管理サブ]![工程1])
  値の代入 ([Forms]![F10製品新規生産管理]![工程担当追加],
            [Forms]![F10製品新規生産管理]![F10製品新規生産管理サブ]![工程作業者1])
  値の代入 ([Forms]![F10製品新規生産管理]![出来高追加], [出来高1])
  値の代入 ([Forms]![F10製品新規生産管理]![リードタイム追加], [リードタイム1])
  値の代入 ([Forms]![F10製品新規生産管理]![工程順番追加], 1)

  メッセージの設定(いいえ)
  クエリを開く (Q80生産管理出来高追加, データシート, 編集)

  値の代入 ([工程追加], Null)
  値の代入 ([工程担当追加], Null)
  値の代入 ([出来高追加], Null)
  値の代入 ([Forms]![F10製品新規生産管理]![リードタイム追加], Null)
  値の代入 ([Forms]![F10製品新規生産管理]![工程順番追加], Null)
  再クエリ ()
  マクロの中止
サブマクロの最後

マクロの概要

アクション 内容
IsNull チェック 基準数量・工程1・工程担当1・出来高1・リードタイム1の必須チェック
値の代入(中継ボックス) 工程・工程担当・出来高・リードタイム・工程順番(=1)を5つの中継ボックスにセット
クエリを開く Q80生産管理出来高追加でT80生産管理出来高に追加
値の代入(Null) 中継ボックスをクリア
再クエリ 生産計画用データサブフォームに即時反映

マクロの設置場所

設置場所 ボタン名
F10製品新規生産管理 詳細セクション 1行目 追加->

追加ボタンで使用するクエリ

追加ボタンのマクロから呼び出されるクエリは2種類です。Q80生産管理出来高追加で工程データをT80生産管理出来高に追加し、右サブフォームの削除ボタンではQ80生産管理出来高削除で該当レコードを削除します。

Q80生産管理出来高追加(追加クエリ)

Q80生産管理出来高追加クエリの構成

項目 内容
クエリの種類 追加クエリ
追加先テーブル T80生産管理出来高
追加フィールド 図番ID・工程名コード・工程担当コード・時間出来高・リードタイム・工程順番
追加する値 5つの中継ボックスから取得

生産管理の新規登録フォームには最大16工程分の追加ボタンがあります。各工程の出来高・リードタイムをT80生産管理出来高テーブルに追加する場合、単純に実装すると16工程×クエリ1本ずつで16本のクエリが必要になります。

このフォームでは5つの中継ボックス(工程追加・工程担当追加・出来高追加・リードタイム追加・工程順番追加)を用意し、追加ボタンを押すたびに対象行の値を中継ボックスに転記してからQ80生産管理出来高追加クエリ1本で追加する設計にしています。追加後は中継ボックスをNullクリアするため、次の追加ボタンでも同じクエリを再利用できます。

クエリの本数を16本から1本に削減できるだけでなく、クエリの修正が必要な場合も1か所を直すだけで済む保守性の高い設計です。

削除ボタンのマクロ

右の生産計画用データサブフォームに表示された工程データを削除するボタンです。追加ボタンで登録した内容を確認しながら不要な工程を削除できます。

サブマクロ:生産管理出来高削除

サブマクロのテキスト表示
サブマクロ:生産管理出来高削除

  警告音

  If MsgBox("登録済データを削除してよしいですか?",4+32,"確認")=6 Then

    メッセージの設定(いいえ)
    クエリを開く (Q80生産管理出来高削除, データシート, 編集)
    再クエリ ()
    マクロの中止

  Else

    メッセージボックス (処理を中止します, はい, なし, 中止)
    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
警告音 削除前に警告音で注意を促す
MsgBox 確認 削除前に確認ダイアログを表示
クエリを開く Q80生産管理出来高削除で該当工程レコードを削除
再クエリ 削除後に生産計画用データサブフォームの表示を即時更新

マクロの設置場所

設置場所 ボタン名
F10製品新規生産管理出来高サブ 詳細セクション 削除

削除ボタンで使用するクエリ

削除ボタンから呼び出されるQ80生産管理出来高削除は、生産計画用データサブフォームで選択中のレコードをT80生産管理出来高から削除するクエリです。サブフォームのカレントレコードのIDを抽出条件に使用するため、選択した工程のみをピンポイントで削除できます。

Q80生産管理出来高削除(削除クエリ)

Q80生産管理出来高削除クエリの構成

項目 内容
クエリの種類 削除クエリ
削除対象テーブル T80生産管理出来高
抽出条件 [Forms]![F10製品新規生産管理]![F10製品新規生産管理出来高サブ]![ID]
用途 生産計画用データサブフォームで選択した工程レコードを削除

登録ボタンのマクロ

基準数量・登録日・出来高合計・リードタイム合計の必須チェックを行い、確認ダイアログを経てQ11製品新規生産管理更新でT19製品生産管理を更新します。登録完了後に閉じる判定を1にセットすることで、閉じるボタンの確認メッセージをスキップできます。

サブマクロ:生産管理登録

サブマクロのテキスト表示
サブマクロ:生産管理登録

  If IsNull([基準数量]) Then
    メッセージボックス (基準数量が入力されていません, はい, 警告, 未入力)
    コントロールの移動 (基準数量)
    マクロの中止
  If 文の最後

  If IsNull([登録日]) Then
    メッセージボックス (生管情報登録日が入力されていません, はい, 警告, 未入力)
    コントロールの移動 (登録日)
    マクロの中止
  If 文の最後

  If [出来高合計]=0 Then
    メッセージボックス (出来高が入力されていません。1つ以上は必ず登録してください, はい, 警告, 未入力)
    コントロールの移動 (出来高1)
    マクロの中止
  If 文の最後

  If [リードタイム合計]=0 Then
    メッセージボックス (リードタイムが入力されていません。1つ以上は必ず登録してください, はい, 警告, 未入力)
    コントロールの移動 (リードタイム1)
    マクロの中止
  If 文の最後

  If MsgBox("製品マスタに生産管理情報の新規登録してよしいですか?",4+32,"確認")=6 Then

    クエリを開く (Q11製品新規生産管理更新, データシート, 編集)
    メッセージボックス (製品マスタに生産管理情報を登録しました, はい, なし, 登録完了)

    値の代入
      アイテム = [閉じる判定]
      式    = 1

    マクロの実行 (M10製品.生産管理表示)
    ウィンドウを閉じる (フォーム, F10製品新規生産管理, 確認)
    再クエリ ()
    マクロの中止

  Else

    メッセージボックス (処理を中止します, はい, なし, 中止)
    マクロの中止

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
IsNull チェック 基準数量・登録日の必須チェック
合計値チェック 出来高合計・リードタイム合計が0でないことを確認
MsgBox 確認 登録前に確認ダイアログを表示
クエリを開く Q11製品新規生産管理更新でT19製品生産管理を更新
値の代入(閉じる判定=1) 登録完了の証跡をセットして閉じる際の確認をスキップ
マクロの実行 M10製品.生産管理表示で詳細フォームの表示を最新化
ウィンドウを閉じる F10製品新規生産管理を閉じて詳細フォームに戻る

マクロの設置場所

設置場所 ボタン名
F10製品新規生産管理 フッター 登録

登録クエリの構成

生産管理の登録で使用するクエリです。Q11製品新規生産管理更新でT19製品生産管理の基準数量・リードタイム・工程情報を一括更新します。

Q11製品新規生産管理更新クエリ(一部)

Q11製品新規生産管理更新の構成(追加クエリ)

項目 内容
クエリの種類 更新クエリ
更新対象テーブル T19製品生産管理
抽出条件 [Forms]![F10製品新規生産管理]![図番ID]
更新フィールド 基準数量・リードタイム合計・工程名コード1〜16・出来高1〜16・リードタイム1〜16・登録日

閉じるボタンのマクロ

閉じる判定が1(登録済み)の場合はそのまま閉じます。0またはNullの場合は「登録ボタンが押されていません」と警告し、いいえを選ぶと登録作業に戻れます。登録内容を入力したまま誤って閉じてしまうミスを防ぐ設計です。

サブマクロ:生産管理閉じる

サブマクロのテキスト表示
サブマクロ:生産管理閉じる

  If [閉じる判定]=1 Then

    ウィンドウを閉じる (, , 確認)
    マクロの中止

  Else

    警告音

    If MsgBox("「登録」ボタンが押されていません。このまま閉じてよいですか?",4+32,"確認")=6 Then

    Else

      マクロの中止

    If 文の最後

  If 文の最後
サブマクロの最後

マクロの概要

アクション 内容
[閉じる判定]=1 登録済みなら確認なしで即閉じる
MsgBox 確認 未登録の場合は「登録ボタンを押しましたか?」と警告
マクロの中止(いいえ) いいえを選ぶと処理を中止して登録作業に戻れる

マクロの設置場所

設置場所 ボタン名
F10製品新規生産管理 フッター 閉じる

クリアボタンのマクロ

入力済みの全フィールドをNullにリセットします。出来高1〜16・リードタイム1〜16・基準数量・登録日・閉じる判定・5つの中継ボックス・取数・2次加硫条件をまとめてクリアします。

サブマクロ:生産管理クリア

マクロの概要

アクション 内容
値の代入(各フィールド, Null) 出来高1〜16・リードタイム1〜16・基準数量・登録日・閉じる判定・中継ボックス5つ・取数・2次加硫条件をクリア

マクロの設置場所

設置場所 ボタン名
F10製品新規生産管理 フッター クリア

まとめ

各課の新規登録フォームは、業務フローに応じてチェック方法や処理の重さが異なります。材料課と生産管理は事前に図番IDの存在が保証されているためチェック不要、加工課・品証課はDCountで存在確認、印刷課は3グループの入力状態を1つの判定コントロールに集約、生産管理は最大16工程分の登録を中継ボックスとクエリ1本で処理する設計です。同じ「新規登録」という機能でも、課ごとの業務特性に合わせて無駄のない実装を選んでいる点が共通しています。

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

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