製品マスタ「編集(各課)」

製品マスタの各課編集ページです。成形課・材料課・加工課・印刷課・品証課・生産管理の各課詳細フォームのフッターに配置された編集ボタンから起動します。全課共通で非連結フォーム+DLookup+更新クエリの設計パターンを採用しており、排他モードを回避しながら安全にデータを編集できます。成形課は成形課タブページで解説済みのためアンカーリンクで参照します。

成形課のデータ編集

成形課の編集機能については、成形課タブページにて編集ボタンから編集更新までの一連の流れ(非連結フォームでの最新データ表示の仕組みを含む)を解説済みです。詳細は以下のページをご参照ください。

製品マスタ「成形課」 > 編集ボタン

関連記事

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


材料課のデータ編集

材料課の編集機能は、材料情報フォーム(F11製品材料)のフッターに配置された編集ボタンから起動します。管理者(権限=2)と材料課担当のみ使用可能です。編集開くマクロの冒頭で配合番号1のNullチェックを行い、配合番号が未表示の場合は警告メッセージを表示します。配合番号は「材料データ確定」の判断材料のため、未入力の場合は新規登録が必要な状態の可能性があることを促します。ただし警告後も編集フォームは開くため、仮登録状態でのデータ入力も可能です。

材料課編集フォーム

黒色系フォームは編集中のサインです。材料情報の全フィールドをDLookupでT11製品成形から転写した状態で起動します。

F11製品材料編集集 ポップアップフォーム

フォームビュー デザインビュー

材料課編集フォームのコンボボックスは用途に応じてテーブル参照型と値リスト型を使い分けています。

配合番号コンボボックス(テーブル参照型)

配合番号コンボボックスはT65配合表Mを参照するテーブル参照型です。配合番号・原材料名・硬度・色調を保持するT65配合表Mから選択することで、材料データの正確性を担保しています。材料の配合情報は品質管理に直結するため、自由入力ではなく登録済みの配合データからのみ選択できる設計です。

配合番号コンボボックス 値集合ソース(クエリ)

重量公差コンボボックス(値リスト型)

重量公差コンボボックスは値リスト方式(±;+/-;+0/-;+/-0)を採用しています。重量公差の表記パターンは限定されており、固定リストで対応できるため値リスト型を採用しています。用途に応じてテーブル参照型と値リスト型を使い分ける設計は成形課フォームと同じ考え方です。

重量公差コンボボックス 値集合ソース(値リスト)


サブマクロ:配合番号1

配合番号コンボボックスには更新後処理のサブマクロ(配合番号1)が設定されており、配合番号を選択するだけで材料名と色調が自動入力されます。

処理の流れは次のとおりです。

  1. DCountでT65配合表Mに選択した配合番号が存在するか確認
  2. 存在しない場合 → 警告メッセージを表示して配合番号1にフォーカスを戻す
  3. 存在する場合 → DLookupで原材料名を取得して[材料1]に自動補完
  4. 同様にDLookupで色調を取得して[色調1]に自動補完
  5. 次の入力欄(厚み1)にフォーカスを移動

存在確認と自動補完を1つのサブマクロにまとめることで、入力ミスの防止とスムーズな入力フローを同時に実現しています。

サブマクロ:配合番号1

サブマクロのテキスト表示
サブマクロ: 配合番号1

    If   DCount("配合番号","T65配合表M","[配合番号]=[配合番号1]")=0   Then
        メッセージボックス   選択した配合番号は配合表マスタに存在しません。選択し直してください, はい, 警告,
        コントロールの移動   (閉じる)
        コントロールの移動   配合番号1
        マクロの中止
    Else
        値の代入
            アイテム  = [材料1]
            式      = DLookUp("原材料名","T65配合表M","[配合番号]=[配合番号1]")
        値の代入
            アイテム  = [色調1]
            式      = DLookUp("色調","T65配合表M","[配合番号]=[配合番号1]")
        コントロールの移動   (厚み1)
        マクロの中止
    If 文の最後

マクロの概要

ステップ 処理 内容
1 If 条件分岐(DCount) 選択した配合番号がT65配合表Mに存在するか確認
2 警告・フォーカス戻し 存在しない場合、警告メッセージを表示して配合番号1に再フォーカス
3 値の代入 存在する場合、原材料名をDLookupで[材料1]に自動補完
4 値の代入 色調をDLookupで[色調1]に自動補完
5 コントロールの移動 次の入力欄(厚み1)にフォーカスを移動

マクロの設置場所

項目 内容
フォーム F11製品材料編集集
コントロール 配合番号1コンボボックス
イベント 更新後処理
呼び出し元 M10製品編集 > サブマクロ:配合番号1

サブマクロ:材料編集開く

材料課の詳細フォーム(F11製品材料)のフッターにある編集ボタンから呼び出されます。配合番号1のNullチェック後、F11製品材料編集集を開き、図番・取引先コード・材料情報の全フィールドをDLookupでT11製品成形から転写します。

サブマクロ:材料編集開く

サブマクロ: 材料編集開く

    If   IsNull([配合番号1])   Then
        メッセージボックス   配合番号が表示されていません。まずは新規登録する必要があるかもしれません。確認してから操作してください, はい, 警告, 未入力
    If 文の最後
    フォームを開く   F11製品材料編集集, フォームビュー, , , , 標準
    値の代入
        アイテム  = [Forms]![F11製品材料編集集]![図番ID]
        式      = [Forms]![F00メインメニュー]![図番ID]
    値の代入
        アイテム  = [Forms]![F11製品材料編集集]![図番]
        式      = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F11製品材料編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F11製品材料編集集]![取引先コード]
        式      = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F11製品材料編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F11製品材料編集集]![配合番号1]
        式      = DLookUp("配合番号1","T11製品成形","[図番ID]=[Forms]![F11製品材料編集集]![図番ID]")
    …(配合番号2〜8 同様)
    値の代入
        アイテム  = [Forms]![F11製品材料編集集]![材料1]
        式      = DLookUp("材料1","T11製品成形","[図番ID]=[Forms]![F11製品材料編集集]![図番ID]")
    …(材料2〜8・色調1〜8・厚み1〜8・ロール巾1〜8・カット寸法1〜8
       1本重量1〜8・公差1〜8・使用本数1〜8・材料備考1〜8・登録日・登録者コード 同様)
    マクロの中止

マクロの概要

ステップ 処理 内容
1 If 条件分岐 配合番号1が未入力の場合に警告メッセージを表示(編集フォームは開く)
2 フォームを開く F11製品材料編集集をフォームビューで開く
3 値の代入 図番IDをメインメニューから転写
4〜 値の代入 図番・取引先コード・配合番号1〜8・材料情報全フィールドをDLookupでT11製品成形から転写

マクロの設置場所

項目 内容
フォーム F11製品材料
コントロール 編集ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:材料編集開く

編集フォームの編集更新ボタン

編集更新ボタンのマクロ構成(Nullチェック→更新クエリ実行→再描画→フォームクローズ)は成形課と同じパターンです。

製品マスタ「成形課」 > 編集フォームの編集更新ボタン

関連記事

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

非連結フォームで最新データを表示する仕組み

材料課フォームも非連結フォームのため、編集ポップアップを閉じても画面上のデータは自動では更新されません。材料表示マクロによる再描画の仕組みは成形課と同じパターンです。

製品マスタ「成形課」 > 非連結フォームで最新データを表示する仕組み

関連記事

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

クエリ:Q11製品材料編集更新

材料課の編集更新クエリです。配合番号・材料情報の全フィールドをF11製品材料編集集の入力値でT11製品成形に書き戻します。

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

クエリの概要

項目 内容
クエリ名 Q11製品材料編集更新
種別 更新クエリ
対象テーブル T11製品成形
抽出条件 [Forms]![F11製品材料編集集]![図番ID] で対象レコードを特定

クエリのフィールド構成

フィールド レコードの更新 内容
配合番号1〜8 [Forms]![F11製品材料編集集]![配合番号1〜8] 配合番号を更新
材料1〜8 [Forms]![F11製品材料編集集]![材料1〜8] 材料名を更新
色調1〜8 [Forms]![F11製品材料編集集]![色調1〜8] 色調を更新
厚み1〜8 [Forms]![F11製品材料編集集]![厚み1〜8] 厚みを更新
ロール巾1〜8 [Forms]![F11製品材料編集集]![ロール巾1〜8] ロール巾を更新
カット寸法1〜8 [Forms]![F11製品材料編集集]![カット寸法1〜8] カット寸法を更新
1本重量1〜8 [Forms]![F11製品材料編集集]![1本重量1〜8] 1本重量を更新
公差1〜8 [Forms]![F11製品材料編集集]![公差1〜8] 重量公差を更新
使用本数1〜8 [Forms]![F11製品材料編集集]![使用本数1〜8] 使用本数を更新
材料備考1〜8 [Forms]![F11製品材料編集集]![材料備考1〜8] 材料備考を更新
1ショット総重量 [Forms]![F11製品材料編集集]![1ショット総重量] 1ショット総重量を更新
登録者コード [Forms]![F11製品材料編集集]![登録者コード] 登録者コードを更新
図番ID(抽出条件) [Forms]![F11製品材料編集集]![図番ID] 対象レコードの特定に使用

加工課のデータ編集

加工課の編集機能は、加工情報フォーム(F12製品加工情報)のフッターに配置された編集ボタンから起動します。管理者(権限=2)と加工課担当のみ使用可能です。編集開くマクロの冒頭で材料購入先1のNullチェックを行い、材料購入先が未表示の場合は警告メッセージを表示します。ただし警告後も編集フォームは開くため、仮登録状態でのデータ入力も可能です。

加工課編集フォーム

黒色系フォームは編集中のサインです。材料購入先・材料情報・加工先・基準サイズ・取り数など加工情報の全フィールドをDLookupでT12製品加工から転写した状態で起動します。

F12製品加工編集 ポップアップフォーム

フォームビュー デザインビュー

加工課編集フォームのコンボボックスも用途に応じてテーブル参照型と値リスト型を使い分けています。

材料購入先・加工先コンボボックス(テーブル参照型)

材料購入先と加工先のコンボボックスはT05取引先Mを参照するテーブル参照型です。T05取引先Mの「加工加工先表示」フラグがTrueの取引先のみを絞り込んで表示します。加工系の取引先に限定したリスト表示で、大量の取引先から目的の会社を素早く選択できます。取引先の誤入力は品質・納期管理に直結するため、テーブル参照型で管理された値からのみ選択できる設計です。

材料購入先・加工先コンボボックス 値集合ソース(クエリ)

基準サイズコンボボックス(値リスト型)

基準サイズコンボボックスは値リスト方式を採用しています。製造現場で使用する定型サイズ(320X320・300X400・450X450など)をあらかじめリストに登録しており、担当者が選択するだけで入力できます。定型外サイズが必要な場合も担当者が直接入力できるため、管理者への依頼なしに対応できます。

基準サイズコンボボックス 値集合ソース(値リスト)

材料購入先と加工先コンボを同一フラグで一元管理
材料購入先コンボと加工先コンボは、どちらもT05取引先Mの「加工加工先表示」フラグを参照しています。管理者がこのフラグをTrueに切り替えるだけで、材料購入先・加工先の両コンボに同時に反映されます。

加工系の取引先を追加・変更する際に材料購入先用と加工先用のリストを別々に管理する必要がなく、取引先マスタの1か所を変更するだけで両コンボに即反映される設計です。取引先の追加・削除・変更に伴うメンテナンスの手間を最小限に抑えています。

関連記事はこちら>>>

サブマクロ:加工編集開く

加工課の詳細フォームのフッターにある編集ボタンから呼び出されます。材料購入先1のNullチェック後、F12製品加工編集を開き、加工情報の全フィールドをDLookupでT12製品加工から転写します。

サブマクロ:加工編集開く

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

    If   IsNull([材料購入先1])   Then
        メッセージボックス   材料購入先情報が表示されていません。まずは新規登録する必要があるかも知れません。確認してから操作してください, はい, 警告, 未入力
    If 文の最後
    フォームを開く   F12製品加工編集, フォームビュー, , , , 標準
    値の代入
        アイテム  = [Forms]![F12製品加工編集]![図番ID]
        式      = [Forms]![F00メインメニュー]![図番ID]
    値の代入
        アイテム  = [Forms]![F12製品加工編集]![図番]
        式      = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F12製品加工編集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F12製品加工編集]![取引先コード]
        式      = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F12製品加工編集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F12製品加工編集]![材料購入先1]
        式      = DLookUp("材料購入先1","T12製品加工","[図番ID]=[Forms]![F12製品加工編集]![図番ID]")
    …(材料購入先2〜4 同様)
    値の代入
        アイテム  = [Forms]![F12製品加工編集]![材料情報1]
        式      = DLookUp("材料情報1","T12製品加工","[図番ID]=[Forms]![F12製品加工編集]![図番ID]")
    …(材料情報2〜4・加工先1〜4・基準サイズ1〜4・取り数1〜4
       図面管理番号・図面インデックス・治具情報・支給品情報・備考
       作業仕様書番号・登録日・登録者コード 同様)
    マクロの中止

マクロの概要

ステップ 処理 内容
1 If 条件分岐 材料購入先1が未入力の場合に警告メッセージを表示(編集フォームは開く)
2 フォームを開く F12製品加工編集をフォームビューで開く
3 値の代入 図番IDをメインメニューから転写
4〜 値の代入 図番・取引先コード・材料購入先1〜4・材料情報1〜4・加工先1〜4・基準サイズ1〜4・取り数1〜4・図面管理番号・図面インデックス・治具情報・支給品情報・備考・作業仕様書番号・登録日・登録者コードをDLookupでT12製品加工から転写

マクロの設置場所

項目 内容
フォーム F12製品加工情報
コントロール 編集ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:加工編集開く

編集フォームの編集更新ボタン

編集・訂正作業後に編集更新ボタンを押すことで更新クエリが実行されてテーブルデータが更新されます。加工課の編集更新マクロは成形課・材料課と異なり冒頭のNullチェックがありません。警告音を鳴らしてから確認ダイアログを表示し、「はい」の場合のみ更新クエリを実行します。

サブマクロ:加工編集更新

サブマクロのテキスト表示
サブマクロ: 加工編集更新

    警告音
    If   MsgBox("訂正・編集したデータを更新してもよろしいですか?",4+32,"確認")=6   Then
        メッセージの設定   (いいえ)
        クエリを開く   Q12製品加工編集更新, データシート, 編集
        メッセージボックス   訂正・編集したデータを更新しました。, はい, なし, 完了
        マクロの実行   M10製品.加工表示, ,
        ウィンドウを閉じる   フォーム, F12製品加工編集, 確認
        再クエリ   コントロール名
        マクロの中止
    Else
        メッセージボックス   処理を中止します, はい, なし, 中止
        マクロの中止
    If 文の最後

マクロの概要

ステップ 処理 内容
1 警告音 確認前に警告音を鳴らす
2 If 条件分岐 確認メッセージで「はい」の場合のみ次の処理を実行
3 クエリを開く Q12製品加工編集更新を実行してT12製品加工を更新
4 メッセージボックス 更新完了メッセージを表示
5 マクロの実行 M10製品.加工表示を実行して最新データを再描画
6 ウィンドウを閉じる F12製品加工編集を確認付きで閉じる
7 再クエリ フォームを更新
8 Else 「いいえ」の場合は中止メッセージを表示

マクロの設置場所

項目 内容
フォーム F12製品加工編集
コントロール 編集更新ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:加工編集更新

非連結フォームで最新データを表示する仕組み

加工課フォームも非連結フォームのため、編集ポップアップを閉じても画面上のデータは自動では更新されません。加工表示マクロによる再描画の仕組みは成形課と同じパターンです。

製品マスタ「成形課」 > 非連結フォームで最新データを表示する仕組み

関連記事

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

クエリ:Q12製品加工編集更新

加工課の編集更新クエリです。加工情報の全フィールドをF12製品加工編集の入力値でT12製品加工に書き戻します。

Q12製品加工編集更新クエリ(一部)

クエリの概要

項目 内容
クエリ名 Q12製品加工編集更新
種別 更新クエリ
対象テーブル T12製品加工
抽出条件 [Forms]![F12製品加工編集]![図番ID] で対象レコードを特定

クエリのフィールド構成

フィールド レコードの更新 内容
図面管理番号 [Forms]![F12製品加工編集]![図面管理番号] 図面管理番号を更新
図面インデックス [Forms]![F12製品加工編集]![図面インデックス] 図面インデックスを更新
支給品情報 [Forms]![F12製品加工編集]![支給品情報] 支給品情報を更新
材料情報1〜4 [Forms]![F12製品加工編集]![材料情報1〜4] 材料情報を更新
材料購入先1〜4 [Forms]![F12製品加工編集]![材料購入先1〜4] 材料購入先を更新
加工先1〜4 [Forms]![F12製品加工編集]![加工先1〜4] 加工先を更新
取り数1〜4 [Forms]![F12製品加工編集]![取り数1〜4] 取り数を更新
治具情報 [Forms]![F12製品加工編集]![治具情報] 治具情報を更新
作業仕様書番号 [Forms]![F12製品加工編集]![作業仕様書番号] 作業仕様書番号を更新
備考 [Forms]![F12製品加工編集]![備考] 備考を更新
登録日 [Forms]![F12製品加工編集]![登録日] 登録日を更新
基準サイズ1〜4 [Forms]![F12製品加工編集]![基準サイズ1〜4] 基準サイズを更新
製品重量 [Forms]![F12製品加工編集]![製品重量] 製品重量を更新
登録者コード [Forms]![F12製品加工編集]![登録者コード] 登録者コードを更新
図番ID(抽出条件) [Forms]![F12製品加工編集]![図番ID] 対象レコードの特定に使用

印刷課のデータ編集

印刷課の編集機能は、印刷情報フォーム(F14製品印刷)のフッターに配置された編集ボタンから起動します。管理者(権限=2)と印刷課担当のみ使用可能です。編集開くマクロの冒頭で印刷版1のNullチェックを行い、印刷版が未表示の場合は警告メッセージを表示します。ただし警告後も編集フォームは開くため、仮登録状態でのデータ入力も可能です。

印刷課編集フォーム

黒色系フォームは編集中のサインです。版情報・治具情報・導電情報の全フィールドをDLookupでT14製品印刷から転写した状態で起動します。

F14製品印刷編集集 ポップアップフォーム

フォームビュー デザインビュー

印刷課編集フォームは版情報・治具情報・導電情報のすべてをテキスト入力で受け付ける設計です。印刷版・印刷治具・導電治具は製品ごとに識別コードが異なりマスタ化が困難なため、コンボボックスを使用せず担当者が自由に入力できる設計にしています。サラサラ・塗装はチェックボックスで管理しており、DLookupで現在値を転写してから編集できます。

判定コントロールが編集フォームにも引き継がれている
デザインビューの下部には =[印刷版1] & [印刷治具1] & [導電治具...] という判定コントロールが配置されています。これは新規登録フォームと同じ構成で、版情報・治具情報・導電情報の3グループを1つの式で結合して入力状況を確認できる仕組みです。

新規登録時には登録済みチェックの判断材料として使用していますが、編集フォームでも同じ判定コントロールを持たせることで、将来的に「いずれかのグループが未入力のまま更新しようとした場合の警告」などの制御を追加する際に対応しやすい構造になっています。フォームの設計思想を新規登録と編集で揃えておくことで、機能拡張のコストを下げています。

関連記事はこちら>>>

サブマクロ:印刷編集開く

印刷課の詳細フォーム(F14製品印刷)のフッターにある編集ボタンから呼び出されます。印刷版1のNullチェック後、F14製品印刷編集集を開き、版情報・治具情報・導電情報の全フィールドをDLookupでT14製品印刷から転写します。

サブマクロ:印刷編集開く

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

    If   IsNull([印刷版1])   Then
        メッセージボックス   印刷版が表示されていません。まずは新規登録する必要があるかも知れません。確認してから操作してください, はい, 警告, 未入力
    If 文の最後
    フォームを開く   F14製品印刷編集集, フォームビュー, , , , 標準
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![図番ID]
        式      = [Forms]![F00メインメニュー]![図番ID]
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![図番]
        式      = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F14製品印刷編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![取引先コード]
        式      = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F14製品印刷編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![印刷版1]
        式      = DLookUp("印刷版1","T14製品印刷","[図番ID]=[Forms]![F14製品印刷編集集]![図番ID]")
    …(印刷版2〜5 同様)
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![印刷治具1]
        式      = DLookUp("印刷治具1","T14製品印刷","[図番ID]=[Forms]![F14製品印刷編集集]![図番ID]")
    …(印刷治具2〜5 同様)
    値の代入
        アイテム  = [Forms]![F14製品印刷編集集]![導電治具1]
        式      = DLookUp("導電治具1","T14製品印刷","[図番ID]=[Forms]![F14製品印刷編集集]![図番ID]")
    …(導電治具2〜5・サラサラ・塗装・備考・登録日・登録者コード 同様)
    マクロの中止

マクロの概要

ステップ 処理 内容
1 If 条件分岐 印刷版1が未入力の場合に警告メッセージを表示(編集フォームは開く)
2 フォームを開く F14製品印刷編集集をフォームビューで開く
3 値の代入 図番IDをメインメニューから転写
4〜 値の代入 図番・取引先コード・印刷版1〜5・印刷治具1〜5・導電治具1〜5・サラサラ・塗装・備考・登録日・登録者コードをDLookupでT14製品印刷から転写

マクロの設置場所

項目 内容
フォーム F14製品印刷
コントロール 編集ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:印刷編集開く

編集フォームの編集更新ボタン

編集・訂正作業後に編集更新ボタンを押すことで更新クエリが実行されてテーブルデータが更新されます。印刷課の編集更新マクロは加工課と同様にNullチェックがなく、警告音を鳴らしてから確認ダイアログを表示し、「はい」の場合のみ更新クエリを実行します。

サブマクロ:印刷編集更新

サブマクロのテキスト表示
サブマクロ: 印刷編集更新

    警告音
    If   MsgBox("訂正・編集したデータを更新してもよろしいですか?",4+32,"確認")=6   Then
        メッセージの設定   (いいえ)
        クエリを開く   Q14製品印刷編集更新, データシート, 編集
        メッセージボックス   訂正・編集したデータを更新しました。, はい, なし, 完了
        マクロの実行   M10製品.印刷表示, ,
        ウィンドウを閉じる   フォーム, F14製品印刷編集集, 確認
        マクロの中止
    Else
        メッセージボックス   処理を中止します, はい, なし, 中止
        マクロの中止
    If 文の最後

マクロの概要

ステップ 処理 内容
1 警告音 確認前に警告音を鳴らす
2 If 条件分岐 確認メッセージで「はい」の場合のみ次の処理を実行
3 クエリを開く Q14製品印刷編集更新を実行してT14製品印刷を更新
4 メッセージボックス 更新完了メッセージを表示
5 マクロの実行 M10製品.印刷表示を実行して最新データを再描画
6 ウィンドウを閉じる F14製品印刷編集集を確認付きで閉じる
7 Else 「いいえ」の場合は中止メッセージを表示

マクロの設置場所

項目 内容
フォーム F14製品印刷編集集
コントロール 編集更新ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:印刷編集更新

非連結フォームで最新データを表示する仕組み

印刷課フォームも非連結フォームのため、編集ポップアップを閉じても画面上のデータは自動では更新されません。印刷表示マクロによる再描画の仕組みは成形課と同じパターンです。

製品マスタ「成形課」 > 非連結フォームで最新データを表示する仕組み

関連記事

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

クエリ:Q14製品印刷編集更新

印刷課の編集更新クエリです。版情報・治具情報・導電情報の全フィールドをF14製品印刷編集集の入力値でT14製品印刷に書き戻します。

Q14製品印刷編集更新クエリ(一部)

クエリの概要

項目 内容
クエリ名 Q14製品印刷編集更新
種別 更新クエリ
対象テーブル T14製品印刷
抽出条件 [Forms]![F14製品印刷編集集]![図番ID] で対象レコードを特定

クエリのフィールド構成

フィールド レコードの更新 内容
サラサラ [Forms]![F14製品印刷編集集]![サラサラ] サラサラフラグを更新
塗装 [Forms]![F14製品印刷編集集]![塗装] 塗装フラグを更新
印刷版1〜5 [Forms]![F14製品印刷編集集]![印刷版1〜5] 版情報を更新
印刷治具1〜5 [Forms]![F14製品印刷編集集]![印刷治具1〜5] 治具情報を更新
導電治具1〜5 [Forms]![F14製品印刷編集集]![導電治具1〜5] 導電情報を更新
備考 [Forms]![F14製品印刷編集集]![備考] 備考を更新
登録日 [Forms]![F14製品印刷編集集]![登録日] 登録日を更新
登録者コード [Forms]![F14製品印刷編集集]![登録者コード] 登録者コードを更新
図番ID(抽出条件) [Forms]![F14製品印刷編集集]![図番ID] 対象レコードの特定に使用

品証課のデータ編集

品証課の編集機能は、品証情報フォーム(F13製品品証情報)のフッターに配置された編集ボタンから起動します。管理者(権限=2)と品証課担当のみ使用可能です。編集開くマクロの冒頭で検査項目1のNullチェックを行い、検査項目が未表示の場合は警告メッセージを表示します。ただし警告後も編集フォームは開くため、仮登録状態でのデータ入力も可能です。

品証課編集フォーム

黒色系フォームは編集中のサインです。外観検査水準・寸法検査水準・検査項目・梱包仕様書・限度見本・客先指定用紙添付・出荷情報など品証情報の全フィールドをDLookupでT13製品品証から転写した状態で起動します。

F13製品品証編集集 ポップアップフォーム

フォームビュー デザインビュー

品証課編集フォームのコンボボックス(外観検査水準・寸法検査水準・出荷情報)はすべて値リスト型を採用しています。品証課で使用する検査水準や出荷情報の選択肢は社内で標準化されており、パターン数が限定されているため固定リストで対応できます。マスタ管理が不要で、担当者がリストから迷わず選択できるシンプルな設計です。


コンボボックスはすべて値リスト型で統一

成形課や加工課ではテーブル参照型と値リスト型を用途に応じて使い分けていますが、品証課のコンボボックスはすべて値リスト型で統一しています。

外観検査水準・寸法検査水準・出荷情報のいずれも、選択肢のパターンが社内で固定されており、新しい値が頻繁に追加されることがありません。テーブル参照型にすると取引先マスタや配合表マスタのような管理テーブルが必要になりますが、品証課の選択肢はテーブルを用意するほどの規模ではないため、値リスト型でシンプルに管理しています。また梱包仕様書・限度見本・客先指定用紙添付の3項目はチェックボックスで管理しており、有無の2択をそのまま直感的に入力できる設計です。

サブマクロ:品証編集開く

品証課の詳細フォーム(F13製品品証情報)のフッターにある編集ボタンから呼び出されます。検査項目1のNullチェック後、F13製品品証編集集を開き、品証情報の全フィールドをDLookupでT13製品品証から転写します。

サブマクロ:品証編集開く

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

    If   IsNull([検査項目1])   Then
        メッセージボックス   検査項目が表示されていません。まずは新規登録する必要があるかも知れません。確認してから操作してください, はい, 警告, 未入力
    If 文の最後
    フォームを開く   F13製品品証編集集, フォームビュー, , , , 標準
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![図番ID]
        式      = [Forms]![F00メインメニュー]![図番ID]
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![図番]
        式      = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![取引先コード]
        式      = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![外観検査水準]
        式      = DLookUp("外観検査水準","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![寸法検査水準]
        式      = DLookUp("寸法検査水準","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![検査項目1]
        式      = DLookUp("検査項目1","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    …(検査項目2〜10 同様)
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![2次加硫前寸法]
        式      = DLookUp("2次加硫前寸法","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![梱包仕様書]
        式      = DLookUp("梱包仕様書","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![限度見本]
        式      = DLookUp("限度見本","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![客先指定用紙添付]
        式      = DLookUp("客先指定用紙添付","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F13製品品証編集集]![出荷情報]
        式      = DLookUp("出荷情報","T13製品品証","[図番ID]=[Forms]![F13製品品証編集集]![図番ID]")
    …(登録日・検査注意点・備考・登録者コード 同様)
    マクロの中止

マクロの概要

ステップ 処理 内容
1 If 条件分岐 検査項目1が未入力の場合に警告メッセージを表示(編集フォームは開く)
2 フォームを開く F13製品品証編集集をフォームビューで開く
3 値の代入 図番IDをメインメニューから転写
4〜 値の代入 図番・取引先コード・外観検査水準・寸法検査水準・検査項目1〜10・2次加硫前寸法・梱包仕様書・限度見本・客先指定用紙添付・出荷情報・登録日・検査注意点・備考・登録者コードをDLookupでT13製品品証から転写

マクロの設置場所

項目 内容
フォーム F13製品品証情報
コントロール 編集ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:品証編集開く

編集フォームの編集更新ボタン

編集・訂正作業後に編集更新ボタンを押すことで更新クエリが実行されてテーブルデータが更新されます。品証課の編集更新マクロは加工課と同様にNullチェックがなく、警告音を鳴らしてから確認ダイアログを表示し、「はい」の場合のみ更新クエリを実行します。

サブマクロ:品証編集更新

サブマクロのテキスト表示
サブマクロ: 品証編集更新

    警告音
    If   MsgBox("訂正・編集したデータを更新してもよろしいですか?",4+32,"確認")=6   Then
        メッセージの設定   (いいえ)
        クエリを開く   Q13製品品証編集更新, データシート, 編集
        メッセージボックス   訂正・編集したデータを更新しました。, はい, なし, 完了
        マクロの実行   M10製品.品証表示, ,
        ウィンドウを閉じる   フォーム, F13製品品証編集集, 確認
        再クエリ   コントロール名
        マクロの中止
    Else
        メッセージボックス   処理を中止します, はい, なし, 中止
        マクロの中止
    If 文の最後

マクロの概要

ステップ 処理 内容
1 警告音 確認前に警告音を鳴らす
2 If 条件分岐 確認メッセージで「はい」の場合のみ次の処理を実行
3 クエリを開く Q13製品品証編集更新を実行してT13製品品証を更新
4 メッセージボックス 更新完了メッセージを表示
5 マクロの実行 M10製品.品証表示を実行して最新データを再描画
6 ウィンドウを閉じる F13製品品証編集集を確認付きで閉じる
7 再クエリ フォームを更新
8 Else 「いいえ」の場合は中止メッセージを表示

マクロの設置場所

項目 内容
フォーム F13製品品証編集集
コントロール 編集更新ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:品証編集更新

非連結フォームで最新データを表示する仕組み

品証課フォームも非連結フォームのため、編集ポップアップを閉じても画面上のデータは自動では更新されません。品証表示マクロによる再描画の仕組みは成形課と同じパターンです。

製品マスタ「成形課」 > 非連結フォームで最新データを表示する仕組み

関連記事

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

クエリ:Q13製品品証編集更新

品証課の編集更新クエリです。検査水準・検査項目・梱包情報など品証情報の全フィールドをF13製品品証編集集の入力値でT13製品品証に書き戻します。

Q13製品品証編集更新クエリ(一部)

クエリの概要

項目 内容
クエリ名 Q13製品品証編集更新
種別 更新クエリ
対象テーブル T13製品品証
抽出条件 [Forms]![F13製品品証編集集]![図番ID] で対象レコードを特定

クエリのフィールド構成

フィールド レコードの更新 内容
外観検査水準 [Forms]![F13製品品証編集集]![外観検査水準] 外観検査水準を更新
寸法検査水準 [Forms]![F13製品品証編集集]![寸法検査水準] 寸法検査水準を更新
検査項目1〜10 [Forms]![F13製品品証編集集]![検査項目1〜10] 検査項目を更新
検査注意点 [Forms]![F13製品品証編集集]![検査注意点] 検査注意点を更新
出荷情報 [Forms]![F13製品品証編集集]![出荷情報] 出荷情報を更新
備考 [Forms]![F13製品品証編集集]![備考] 備考を更新
梱包仕様書 [Forms]![F13製品品証編集集]![梱包仕様書] 梱包仕様書フラグを更新
限度見本 [Forms]![F13製品品証編集集]![限度見本] 限度見本フラグを更新
客先指定用紙添付 [Forms]![F13製品品証編集集]![客先指定用紙添付] 客先指定用紙添付フラグを更新
登録日 [Forms]![F13製品品証編集集]![登録日] 登録日を更新
2次加硫前寸法 [Forms]![F13製品品証編集集]![2次加硫前寸法] 2次加硫前寸法を更新
登録者コード [Forms]![F13製品品証編集集]![登録者コード] 登録者コードを更新
図番ID(抽出条件) [Forms]![F13製品品証編集集]![図番ID] 対象レコードの特定に使用

生産管理のデータ編集

生産管理の編集機能は、生産管理情報フォーム(F19製品生産管理情報)のフッターに配置された編集ボタンから起動します。管理者(権限=2)と生産管理担当のみ使用可能です。編集開くマクロの冒頭で基準数量・出来高合計・リードタイム合計の3項目をNullチェックし、いずれかが未入力または0の場合は警告メッセージを表示してマクロを中止します。他の課が警告後も編集フォームを開くのに対し、生産管理は3項目がそろっていない場合は編集フォームを開かない設計です。

生産管理編集フォーム

黒色系フォームは編集中のサインです。基準数量・出来高1〜16・リードタイム1〜16をT19製品生産管理から、取数・2次加硫条件をT11製品成形からDLookupで転写した状態で起動します。

F19製品生産管理編集集 ポップアップフォーム

フォームビュー デザインビュー

追加ボタン・削除ボタン・閉じるボタンの動作は新規登録フォームと同じ設計です。

関連記事

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


3項目すべて揃わないと編集フォームが開かない

生産管理の編集開くマクロは、基準数量・出来高合計・リードタイム合計の3項目を順番にチェックし、1つでも未入力または0の場合はその時点でマクロを中止します。他の課が「警告を出しつつも編集フォームは開く」設計なのに対し、生産管理は3項目がそろっていなければ編集フォーム自体が開きません。

生産管理データは16工程の出来高とリードタイムが連動しており、基準数量・出来高合計・リードタイム合計のいずれかが欠けた状態で編集を許可すると、生産計画用データの集計に矛盾が生じるリスクがあります。入力不完全なデータへの編集を物理的にブロックすることで、データの整合性を担保する設計です。

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

生産管理情報フォームのフッターにある編集ボタンから呼び出されます。3項目のNullチェック後、F19製品生産管理編集集を開き、基準数量・出来高1〜16・リードタイム1〜16をT19製品生産管理から、取数・2次加硫条件をT11製品成形からDLookupで転写します。

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

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

    If   IsNull([基準数量])   Then
        メッセージボックス   編集するデータが存在しません。このデータは「新規登録」が必要です。, はい, 警告, 未登録
        マクロの中止
    If 文の最後
    If   [出来高合計]=0   Then
        メッセージボックス   編集するデータが存在しません。このデータは「新規登録」が必要です。, はい, 警告, 未登録
        マクロの中止
    If 文の最後
    If   [リードタイム合計]=0   Then
        メッセージボックス   編集するデータが存在しません。このデータは「新規登録」が必要です。, はい, 警告, 未登録
        マクロの中止
    If 文の最後
    フォームを開く   F19製品生産管理編集集, フォームビュー, , , , 標準
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![図番ID]
        式      = [Forms]![F00メインメニュー]![図番ID]
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![図番]
        式      = DLookUp("図番","T10製品M","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![取引先コード]
        式      = DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![基準数量]
        式      = DLookUp("基準数量","T19製品生産管理","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![出来高2]
        式      = DLookUp("出来高2","T19製品生産管理","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    …(出来高3〜16 同様)
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![リードタイム1]
        式      = DLookUp("リードタイム1","T19製品生産管理","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    …(リードタイム2〜16 同様)
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![取数]
        式      = DLookUp("取数","T11製品成形","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    値の代入
        アイテム  = [Forms]![F19製品生産管理編集集]![2次加硫条件]
        式      = DLookUp("2次加硫条件","T11製品成形","[図番ID]=[Forms]![F19製品生産管理編集集]![図番ID]")
    再クエリ   ()
    マクロの中止

マクロの概要

ステップ 処理 内容
1 If 条件分岐 基準数量がNullの場合、警告メッセージを表示してマクロを中止
2 If 条件分岐 出来高合計が0の場合、警告メッセージを表示してマクロを中止
3 If 条件分岐 リードタイム合計が0の場合、警告メッセージを表示してマクロを中止
4 フォームを開く F19製品生産管理編集集をフォームビューで開く
5 値の代入 図番IDをメインメニューから転写
6〜 値の代入 図番・取引先コード・基準数量・出来高1〜16・リードタイム1〜16をT19製品生産管理から転写、取数・2次加硫条件をT11製品成形から転写
末尾 再クエリ フォームを更新

マクロの設置場所

項目 内容
フォーム F19製品生産管理情報
コントロール 編集ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:生産管理編集開く

編集フォームの編集更新ボタン

編集・訂正作業後に編集更新ボタンを押すことで更新クエリが実行されてテーブルデータが更新されます。生産管理の編集更新マクロは加工課・品証課と同様にNullチェックがなく、警告音を鳴らしてから確認ダイアログを表示し、「はい」の場合のみ更新クエリを実行します。

サブマクロ:生産管理編集更新

サブマクロのテキスト表示
サブマクロ: 生産管理編集更新

    警告音
    If   MsgBox("訂正・編集したデータを更新してもよろしいですか?",4+32,"確認")=6   Then
        メッセージの設定   (いいえ)
        クエリを開く   Q19製品生産管理編集更新, データシート, 編集
        メッセージボックス   訂正・編集したデータを更新しました。, はい, なし, 完了
        マクロの実行   M10製品.生産管理表示, ,
        ウィンドウを閉じる   フォーム, F19製品生産管理編集集, 確認
        再クエリ   ()
        マクロの中止
    Else
        メッセージボックス   処理を中止します, はい, なし, 中止
        マクロの中止
    If 文の最後

マクロの概要

ステップ 処理 内容
1 警告音 確認前に警告音を鳴らす
2 If 条件分岐 確認メッセージで「はい」の場合のみ次の処理を実行
3 クエリを開く Q19製品生産管理編集更新を実行してT19製品生産管理を更新
4 メッセージボックス 更新完了メッセージを表示
5 マクロの実行 M10製品.生産管理表示を実行して最新データを再描画
6 ウィンドウを閉じる F19製品生産管理編集集を確認付きで閉じる
7 再クエリ フォームを更新
8 Else 「いいえ」の場合は中止メッセージを表示

マクロの設置場所

項目 内容
フォーム F19製品生産管理編集集
コントロール 編集更新ボタン
イベント クリック時
呼び出し元 M10製品編集 > サブマクロ:生産管理編集更新

非連結フォームで最新データを表示する仕組み

生産管理フォームも非連結フォームのため、編集ポップアップを閉じても画面上のデータは自動では更新されません。生産管理表示マクロによる再描画の仕組みは成形課と同じパターンです。

製品マスタ「成形課」 > 非連結フォームで最新データを表示する仕組み

関連記事

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

クエリ:Q19製品生産管理編集更新

生産管理の編集更新クエリです。基準数量・工程名コード1〜16・出来高1〜16・リードタイム1〜16・リードタイム合計の全フィールドをF19製品生産管理編集集の入力値でT19製品生産管理に書き戻します。

Q19製品生産管理編集更新クエリ(一部)

クエリの概要

項目 内容
クエリ名 Q19製品生産管理編集更新
種別 更新クエリ
対象テーブル T19製品生産管理
抽出条件 [Forms]![F19製品生産管理編集集]![図番ID] で対象レコードを特定

クエリのフィールド構成

フィールド レコードの更新 内容
基準数量 [Forms]![F19製品生産管理編集集]![基準数量] 基準数量を更新
リードタイム合計 [Forms]![F19製品生産管理編集集]![リードタイム合計] リードタイム合計を更新
工程名コード1〜16 [Forms]![F19製品生産管理編集集]![工程名コード1〜16] 各工程の工程名コードを更新
出来高1〜16 [Forms]![F19製品生産管理編集集]![出来高1〜16] 各工程の出来高を更新
リードタイム1〜16 [Forms]![F19製品生産管理編集集]![リードタイム1〜16] 各工程のリードタイムを更新
図番ID(抽出条件) [Forms]![F19製品生産管理編集集]![図番ID] 対象レコードの特定に使用

まとめ

製品マスタ「編集(各課)」は、成形課・材料課・加工課・印刷課・品証課・生産管理の全6課を対象に、非連結フォーム+DLookup+更新クエリという共通の設計パターンで構成しています。

各課共通のポイントは3点です。1点目は編集開くマクロの冒頭Nullチェックで、課ごとに「データ確定の判断基準となるフィールド」をチェック対象として設定しています。2点目は編集後の再描画で、更新クエリ実行後に各課の表示マクロ(M10製品.〇〇表示)を呼び出すことで、非連結フォームでも常に最新データを表示できる設計を実現しています。3点目はコンボボックスの使い分けで、品質・納期管理に直結する項目はテーブル参照型、選択肢が固定・限定される項目は値リスト型と、用途に応じた設計を各課で徹底しています。

課ごとの特徴としては、材料課は配合番号選択時のDCount確認+DLookup自動補完、加工課は材料購入先と加工先を同一フラグで一元管理、印刷課は判定コントロールを編集フォームにも引き継ぐ設計、品証課はすべてのコンボボックスを値リスト型で統一、生産管理は3項目すべてがそろわなければ編集フォーム自体を開かない厳格なチェックという点が挙げられます。

 

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

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