製品マスタ「新規登録」

製品マスタの新規登録は管理者のみが実行できます。基本情報・営業課情報・工程情報をこのフォームで一括登録し、関連する課のテーブルに図番IDを自動追加することで各課担当者が課別情報を登録するベースが完成します。仕入先製品マスタへの登録もこのフォームから行います。


新規登録画面の構成

非連結フォームで構成されています。図番・取引先・品名・単価・関連部署・工程情報などを入力し、登録ボタン押下時に未入力チェックと重複チェックを経てT10製品Mおよび各課テーブルにデータを書き込みます。フォームの色目は青系で新規登録のサインです。

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

画面の概要

新規登録フォームの各コントロールと役割です。

項目 内容
図番 製品図番を手入力。シート図番はシート図番生成ボタンで自動生成
シート図番生成ボタン ゴムシート製品の図番をコンボボックスの選択で自動生成するポップアップを開く
親図番あり呼出ボタン 既存図番を親図番として呼び出し、フォームに転記するポップアップを開く
取引先 取引先コードと取引先名のコンボボックス。取引先検索ボタンで絞り込み可能
取引先検索ボタン 取引先をフリガナで検索するポップアップを開く
品名 製品の品名を入力
単価 売値を入力(小数点以下2桁)
ロット別単価登録ボタン ロット別単価を登録するフォームを開く
関連部署 成形課・加工課・印刷課・品証課・業務課・営業課のチェックボックス。登録時に各課テーブルへの図番ID追加を制御
現品票区分 成形・加工・印刷のオプションボタン
納期設定 納期を何日前に設定するかの数値入力(規定値:0)
フォーキャスト 成形・加工のチェックボックス
工程カテゴリー T10製品工程群から選択するコンボボックス
業種カテゴリー T10製品業種から選択するコンボボックス
重要事項 図番に対する重要事項を入力
備考 図番に対する備考を入力
営業メモ 営業メモを入力
登録日 起動時に本日日付を自動セット
図番ID発行 既存レコード数+1の採番を自動表示(確認用)
作業工程1〜16 T10工程名から選択するコンボボックス(最大16工程)
工程担当1〜16 T10工程担当から選択するコンボボックス
作業工程ボタン 作業工程のコンボボックスを一括設定するポップアップを開く
工程担当ボタン 工程担当のコンボボックスを一括設定するポップアップを開く
仕入先製品マスタ登録エリア 仕入先・仕入先単価・関連工程・有効・手配・備考を入力してT30仕入先製品Mに登録
登録ボタン 未入力チェック→重複チェック→確認メッセージ→各テーブルに追加
キャンセルボタン 全コントロールを初期値に戻す
閉じるボタン 新規登録フォームを閉じる

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

フォームの構造とプロパティ設定を確認します。

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

デザインビューの概要

項目 設定内容
フォーム名 F10製品新規
レコードソース 空欄(非連結フォーム)
図番ID発行 DMax(“図番ID”,”T10製品M”)+1 で次の図番IDを自動表示
取引先コンボ =[取引先コード].Column(1) で取引先名を表示
工程カテゴリー =[工程群コード].Column(1) で工程群名を表示
業種カテゴリー =[業種コード].Column(1) で業種名を表示
仕入先製品マスタ登録エリア 右上に独立したエリアとして配置。専用の登録・クリアボタンを持つ
仕入先情報サブフォーム 登録済み仕入先情報の一覧を表示

シート図番生成ボタン

ゴムシート製品の図番をコンボボックスの選択で自動生成するポップアップフォームです。タイプ・材質・硬度・サイズ・色調・厚み・表面状態・サラサラを上から順に選択するたびにシート図番ボックスに文字列が連結されていきます。確定適用ボタンで完成した図番と取引先コード(自社工場:2)を新規登録フォームに転記します。

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

各コンボボックスのマクロ

コンボボックスを選択するたびに対応するサブマクロが発動し、前の項目が未選択の場合は警告を表示して選択をNullに戻します。選択済みの場合はシート図番ボックスに文字列を連結します。

各コンボボックス更新後処理に設置するサブマクロ

サブマクロ:シート図番タイプ

サブマクロ:シート図番材質

サブマクロ:シート図番硬度

サブマクロ:シート図番サイズ

サブマクロ:シート図番色調

サブマクロ:シート図番厚み

サブマクロ:シート図番表面状態

サブマクロ:シート図番サラサラ

サブマクロのテキスト表示
サブマクロ:シート図番タイプ
  値の代入
    アイテム  = [シート図番]
    式        = [タイプ]
  マクロの中止
サブマクロの最後

サブマクロ:シート図番材質
  If  IsNull([シート図番])  Then
    メッセージボックス(「タイプ」を選択してから「材質」を選択してください, はい, 警告, 再選択)
    コントロールの移動(タイプ)
    値の代入([材質], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [材質]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番硬度
  If  IsNull([材質])  Then
    メッセージボックス(「材質」を選択してから「硬度」を選択してください, はい, 警告, 再選択)
    コントロールの移動(材質)
    値の代入([硬度], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [硬度]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番サイズ
  If  IsNull([硬度])  Then
    メッセージボックス(「硬度」を選択してから「サイズ」を選択してください, はい, 警告, 再選択)
    コントロールの移動(硬度)
    値の代入([サイズ], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [サイズ]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番色調
  If  IsNull([サイズ])  Then
    メッセージボックス(「サイズ」を選択してから「色調」を選択してください, はい, 警告, 再選択)
    コントロールの移動(サイズ)
    値の代入([色調], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [色調]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番厚み
  If  IsNull([色調])  Then
    メッセージボックス(「色調」を選択してから「厚み」を選択してください, はい, 警告, 再選択)
    コントロールの移動(色調)
    値の代入([厚み], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [厚み]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番表面状態
  If  IsNull([厚み])  Then
    メッセージボックス(「厚み」を選択してから「表面状態」を選択してください, はい, 警告, 再選択)
    コントロールの移動(厚み)
    値の代入([表面状態], Null)
    値の代入([サラサラ], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [表面状態]
    マクロの中止
  If 文の最後
サブマクロの最後

サブマクロ:シート図番サラサラ
  If  IsNull([厚み])  Then
    メッセージボックス(「厚み」を選択してから「サラサラ」を選択してください, はい, 警告, 再選択)
    コントロールの移動(厚み)
    値の代入([サラサラ], Null)
    値の代入([表面状態], Null)
    マクロの中止
  Else
    値の代入
      アイテム  = [シート図番]
      式        = [シート図番] & [SC]
    マクロの中止
  If 文の最後
サブマクロの最後

各コンボボックスのマクロの概要

サブマクロ 前提条件チェック 処理
シート図番タイプ なし シート図番にタイプを代入
シート図番材質 タイプ未選択→警告 シート図番にタイプ+材質を連結
シート図番硬度 材質未選択→警告 シート図番に+硬度を連結
シート図番サイズ 硬度未選択→警告 シート図番に+サイズを連結
シート図番色調 サイズ未選択→警告 シート図番に+色調を連結
シート図番厚み 色調未選択→警告 シート図番に+厚みを連結
シート図番表面状態 厚み未選択→警告 シート図番に+表面状態を連結
シート図番サラサラ 厚み未選択→警告(空欄可) シート図番に+SCを連結

マクロの設置場所

項目 内容
フォーム F10製品新規シート図番生成
コントロール 各コンボボックス
イベント 更新後処理
呼び出し元 M10製品新規 > 各サブマクロ

 

コンボボックスの選択順序を強制する連鎖チェック設計
シート図番生成フォームのコンボボックスは8つありますが、好きな順番で選べるわけではありません。タイプ→材質→硬度→サイズ→色調→厚み→表面状態→サラサラの順番で選ばないと次のコンボボックスが機能しない設計です。

各コンボボックスの更新後処理マクロは「1つ前の項目がNullなら警告を出して自分自身もNullに戻す」というチェックを持っています。例えば硬度のコンボボックスを選ぶと「材質が未選択なら警告→硬度をNullに戻す」が発動します。順番を飛ばして選んでもシート図番に不完全な文字列が入らないため、誤った図番が生成されるリスクをゼロにしています。

この設計の利点は2つです。1つ目はシート図番の文字列が常に「タイプ+材質+硬度+サイズ+色調+厚み+表面状態」の順番で組み立てられるため、図番の表記が統一されます。2つ目はやり直しボタンを押せば全コンボボックスが一括でNullに戻るため、途中でやり直したい場合も迷わず操作できます。コンボボックスの値リストをマスタで管理していれば、規格が増えた際もリストに追加するだけで対応できます。

やり直しボタン・確定適用ボタン

やり直しボタンは全コンボボックスとシート図番をNullに戻してタイプにフォーカスを移動します。確定適用ボタンは完成したシート図番と取引先コード(自社工場:2)を新規登録フォームに転記してポップアップを閉じます。

サブマクロ:シート図番やり直し サブマクロ:シート図番適用

サブマクロ;シート図番やり直し

サブマクロ;シート図番適用

サブマクロのテキスト表示
サブマクロ:シート図番やり直し
  値の代入([タイプ], Null)
  値の代入([材質], Null)
  値の代入([硬度], Null)
  値の代入([サイズ], Null)
  値の代入([色調], Null)
  値の代入([厚み], Null)
  値の代入([表面状態], Null)
  値の代入([サラサラ], Null)
  値の代入([シート図番], Null)
  コントロールの移動(タイプ)
  マクロの中止
サブマクロの最後

サブマクロ:シート図番適用
  値の代入
    アイテム  = [Forms]![F10製品新規]![図番]
    式        = [Forms]![F10製品新規シート図番生成]![シート図番]
  値の代入
    アイテム  = [Forms]![F10製品新規]![取引先コード]
    式        = 2
  ウィンドウを閉じる(フォーム, F10製品新規シート図番生成, 確認)
  コントロールの移動(品名)
  マクロの中止
サブマクロの最後

やり直し・確定適用 マクロの概要

サブマクロ 処理 内容
シート図番やり直し 値の代入 全コンボボックスとシート図番をNullに初期化してタイプにフォーカス
シート図番適用 値の代入 シート図番を新規登録フォームの図番に転記
値の代入 取引先コードに自社工場(2)を固定セット
ウィンドウを閉じる シート図番生成フォームを閉じる
コントロールの移動 品名にフォーカスを移動

マクロの設置場所

項目 内容
フォーム F10製品新規シート図番生成
コントロール やり直しボタン・確定適用ボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:シート図番やり直し/シート図番適用

親図番あり呼出ボタン

色違いや末尾のみ異なる派生図番を登録する際に既存図番のデータを呼び出して転記するポップアップフォームです。図番を選択して適用ボタンを押すと親図番IDと全フィールドをDLookupで転写し、登録日を本日日付に上書きします。呼び出し後は図番など異なる部分だけ書き直すだけで新規登録の入力工数を大幅に削減できます。

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

サブマクロ:親図番適用

適用ボタンをクリックすると親図番IDを転写したうえでM10製品新規.親図番表示マクロを実行してT10製品Mの全フィールドをDLookupで新規登録フォームに転記します。転記後に「図番を親図番とは違う図番にしてください」と警告メッセージを表示し、図番フィールドにフォーカスを移動します。

サブマクロ:親図番適用

サブマクロのテキスト表示
サブマクロ:親図番適用
  値の代入
    アイテム  = [Forms]![F10製品新規]![親図番ID]
    式        = [Forms]![F10製品新規親図番ポップ]![F10製品新規親図番ポップサブ]![図番ID]
  ウィンドウを閉じる(フォーム, F10製品新規親図番ポップ, 確認)
  マクロの実行(M10製品新規.親図番表示, , )
  メッセージボックス
    メッセージ  親図番からデータを呼び出した場合は 図番 を親図番とは違う図番にしてください
    警告音      はい
    メッセージの種類  注意!
    メッセージタイトル  警告
  コントロールの移動(図番)
  マクロの中止
サブマクロの最後

マクロの概要

ステップ 処理 内容
1 値の代入 選択行の図番IDを新規登録フォームの親図番IDに転写
2 ウィンドウを閉じる 親図番ポップアップを閉じる
3 マクロの実行 M10製品新規.親図番表示でT10製品Mの全フィールドをDLookupで転写
4 メッセージボックス 図番を変更するよう警告メッセージを表示
5 コントロールの移動 図番にフォーカスを移動

マクロの設置場所

項目 内容
フォーム F10製品新規親図番ポップサブ
コントロール 適用ボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:親図番適用

サブマクロ:親図番表示

親図番IDをキーにT10製品MをDLookupで検索し、図番・取引先コード・品名・単価・関連部署フラグ・工程1〜16・工程作業者1〜16・業種コード・工程群コード・納期設定などの全フィールドを新規登録フォームに転記します。登録日は本日日付(Date())で上書きします。

サブマクロ:親図番表示

サブマクロのテキスト表示
サブマクロ:親図番表示
  値の代入([Forms]![F10製品新規]![図番], DLookUp("図番","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![取引先コード], DLookUp("取引先コード","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![品名], DLookUp("品名","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![単価], DLookUp("単価","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![成形課], DLookUp("成形課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![加工課], DLookUp("加工課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![印刷課], DLookUp("印刷課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![品証課], DLookUp("品証課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![業務課], DLookUp("業務課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![営業課], DLookUp("営業課","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![現品票区分], DLookUp("現品票区分","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![成形フォーキャスト], DLookUp("成形フォーキャスト","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![加工フォーキャスト], DLookUp("加工フォーキャスト","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![重要事項], DLookUp("重要事項","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![備考], DLookUp("備考","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![営業メモ], DLookUp("営業メモ","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![登録日], Date())
  値の代入([Forms]![F10製品新規]![工程1], DLookUp("工程1","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  …(工程2〜16・工程作業者1〜16を同形式でDLookup転写)
  値の代入([Forms]![F10製品新規]![工程群コード], DLookUp("工程群コード","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![業種コード], DLookUp("業種コード","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  値の代入([Forms]![F10製品新規]![納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F10製品新規]![親図番ID]"))
  再クエリ()
  マクロの中止
サブマクロの最後

マクロの概要

処理 内容
値の代入(T10製品M) 図番・取引先コード・品名・単価・関連部署フラグ・フォーキャスト・重要事項・備考・営業メモをDLookupで転写
値の代入(登録日) 本日日付(Date())で上書き
値の代入(工程情報) 工程1〜16・工程作業者1〜16をDLookupで転写
値の代入(カテゴリー) 工程群コード・業種コード・納期設定をDLookupで転写

マクロの設置場所

項目 内容
マクロ M10製品新規
サブマクロ 親図番表示
呼び出し元 サブマクロ:親図番適用内の「マクロの実行」から呼び出し

取引先検索ボタン

取引先をフリガナで検索するポップアップフォームです。フリガナを入力して再検索ボタンを押すと取引先名・住所・取引先コードの一覧が絞り込まれます。適用ボタンで取引先コードを新規登録フォームに転記してポップアップを閉じます。

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

サブマクロ:取引先適用

適用ボタンをクリックすると取引先コードをF10製品新規フォームへ転記します。転記後に取引先検索フォームは閉じて製品新規登録フォームに移動します。

サブマクロ:取引先適用

サブマクロのテキスト表示
サブマクロ:取引先適用
  値の代入
    アイテム  = [Forms]![F10製品新規]![取引先コード]
    式        = [Forms]![F10製品新規取引先検索]![F10製品新規取引先検索サブ]![取引先コード]
  ウィンドウを閉じる(フォーム, F10製品新規取引先検索, 確認)
  コントロールの移動(取引先コード)
  再クエリ()
  マクロの中止
サブマクロの最後

マクロの概要

ステップ 処理 内容
1 値の代入 選択行の取引先コードを新規登録フォームに転写
2 ウィンドウを閉じる 取引先検索フォームを閉じる
3 コントロールの移動 取引先コードにフォーカスを移動
4 再クエリ 取引先名を再描画

マクロの設置場所

項目 内容
フォーム F10製品新規取引先検索サブ
コントロール 適用ボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:取引先適用

登録ボタン

入力内容の未入力チェック・重複チェックを順番に実行し、すべてのチェックを通過したことを確認してからT10製品Mへの追加と各課テーブルへの図番ID追加を一括で実行します。登録完了後はキャンセルマクロが自動実行されてフォームがクリア状態に戻ります。

サブマクロ:登録

登録ボタンをクリックすると発動するメインマクロです。未入力・重複の各チェックを順番に実行し、確認メッセージで「はい」を選択した場合のみクエリを順次実行してデータを書き込みます。

サブマクロ:登録

サブマクロのテキスト表示
サブマクロ:登録
  If  IsNull([図番])  Then
    メッセージボックス(図番が入力されていません, はい, 警告, 未入力)
    コントロールの移動(図番)
    マクロの中止
  If 文の最後
  If  IsNull([取引先コード])  Then  ・・・(取引先コード未入力チェック)
  If  IsNull([取引先名])  Then  ・・・(取引先名未入力チェック)
  If  IsNull([品名])  Then  ・・・(品名未入力チェック)
  If  IsNull([単価])  Then  ・・・(単価未入力チェック)
  If  [関連部署]=0  Then  ・・・(関連部署未選択チェック)
  If  [現品票区分]=False  Then  ・・・(現品票区分未選択チェック)
  If  IsNull([工程群コード])  Then  ・・・(工程群コード未入力チェック)
  If  IsNull([業種コード])  Then  ・・・(業種コード未入力チェック)
  If  IsNull([工程1])  Then  ・・・(工程1未入力チェック)
  If  IsNull([工程作業者1])  Then  ・・・(工程作業者1未入力チェック)
  If  DCount("*","Q10製品新規仕入先サブ")=0  Then
    メッセージボックス(仕入先情報が登録されていません。最低1件は登録してください, はい, 警告, 未登録)
    コントロールの移動(仕入先コード)
    マクロの中止
  If 文の最後
  If  DCount("図番","T10製品M","[図番]=[Forms]![F10製品新規]![図番]")<>0  Then
    メッセージボックス(登録しようとしている図番は既に登録されています。確認してください, はい, 警告, 重複)
    コントロールの移動(図番)
    マクロの中止
  If 文の最後
  警告音
  If  MsgBox("製品マスタに新規登録してよろしいですか?",4+32,"確認")=6  Then
    メッセージの設定(いいえ)
    クエリを開く(Q10製品新規追加, データシート, 編集)
    クエリを開く(Q10製品新規親図番更新, データシート, 編集)
    If  [Forms]![F10製品新規]![成形課]=True  Then
      クエリを開く(Q10製品新規追加成形, データシート, 編集)
      クエリを開く(Q10製品新規成形親図番更新, データシート, 編集)
    If 文の最後
    If  [Forms]![F10製品新規]![加工課]=True  Then
      クエリを開く(Q10製品新規追加加工, データシート, 編集)
      クエリを開く(Q10製品新規加工親図番更新, データシート, 編集)
    If 文の最後
    If  [Forms]![F10製品新規]![印刷課]=True  Then
      クエリを開く(Q10製品新規追加印刷, データシート, 編集)
      クエリを開く(Q10製品新規印刷親図番更新, データシート, 編集)
    If 文の最後
    If  [Forms]![F10製品新規]![品証課]=True  Then
      クエリを開く(Q10製品新規追加品証, データシート, 編集)
      クエリを開く(Q10製品新規品証親図番更新, データシート, 編集)
    If 文の最後
    クエリを開く(Q10製品新規追加生産管理, データシート, 編集)
    クエリを開く(Q10製品新規生産管理親図番更新, データシート, 編集)
    メッセージボックス(製品マスタに登録しました, はい, なし, 登録完了)
    マクロの実行(M10製品新規.キャンセル, , )
    マクロの中止
  Else
    メッセージボックス(中止しました, はい, 警告, 中止)
    マクロの中止
  If 文の最後
サブマクロの最後

マクロの概要

ステップ 処理 内容
1〜11 未入力チェック 図番・取引先コード・取引先名・品名・単価・関連部署・現品票区分・工程群コード・業種コード・工程1・工程作業者1
12 未登録チェック 仕入先情報が0件の場合に警告
13 重複チェック 同一図番がT10製品Mに既存の場合に警告
14 確認メッセージ 登録確認
15 クエリを開く Q10製品新規追加でT10製品Mに追加
16 クエリを開く Q10製品新規親図番更新でT10製品Mの親図番IDを更新
17 条件分岐(成形課) 成形課フラグTrueの場合:図番IDをT11製品成形に追加・親図番ID更新
18 条件分岐(加工課) 加工課フラグTrueの場合:図番IDをT12製品加工に追加・親図番ID更新
19 条件分岐(印刷課) 印刷課フラグTrueの場合:図番IDをT14製品印刷に追加・親図番ID更新
20 条件分岐(品証課) 品証課フラグTrueの場合:図番IDをT13製品品証に追加・親図番ID更新
21 クエリを開く Q10製品新規追加生産管理でT19製品生産管理に無条件追加
22 クエリを開く Q10製品新規生産管理親図番更新で親図番IDを更新
23 メッセージボックス 登録完了メッセージを表示
24 マクロの実行 M10製品新規.キャンセルでフォームをクリア

マクロの設置場所

項目 内容
フォーム F10製品新規
コントロール 登録ボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:登録

Q10製品新規追加

T10製品Mに新規レコードを追加する追加クエリです。フォーム上の全入力値をフィールドに対応させて追加します。フィールド数が多いためテーブル設計ページも参照してください。

Q10製品新規追加 デザインビュー(一部)

Q10製品新規追加 クエリの概要

項目 内容
クエリ名 Q10製品新規追加
種別 追加クエリ
追加先テーブル T10製品M

主な追加フィールド

追加先フィールド 内容
図番ID [Forms]![F10製品新規]![図番ID] 図番IDを追加
親図番ID [Forms]![F10製品新規]![親図番ID] 親図番IDを追加
図番 [Forms]![F10製品新規]![図番] 図番を追加
登録日 [Forms]![F10製品新規]![登録日] 登録日を追加
取引先コード [Forms]![F10製品新規]![取引先コード] 取引先コードを追加
品名〜営業メモ [Forms]![F10製品新規]![各フィールド] 各入力値を追加
工程1〜16 [Forms]![F10製品新規]![工程1〜16] 工程情報を追加
工程作業者1〜16 [Forms]![F10製品新規]![工程作業者1〜16] 工程担当者を追加
成形課〜営業課 [Forms]![F10製品新規]![各フラグ] 関連部署フラグを追加
在庫更新日 Date() 登録日を本日日付で追加
登録者コード [Forms]![F00メインメニュー]![登録者コード] ログインユーザーを追加
業種コード [Forms]![F10製品新規]![業種コード] 業種コードを追加
工程群コード [Forms]![F10製品新規]![工程群コード] 工程群コードを追加
納期設定 [Forms]![F10製品新規]![納期設定] 納期設定を追加

関連記事

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

Q10製品新規親図番更新クエリ・課別追加クエリ・課別親図番更新クエリ

T10製品MへのレコードはQ10製品新規追加で追加した直後は親図番IDがNullのため、Q10製品新規親図番更新でIDを自己参照して親図番IDを更新します。課別追加クエリは関連部署フラグがTrueの課のテーブルに図番IDと親図番IDのみを追加するシンプルな構成です。

Q10製品新規親図番更新 デザインビュー

Q10製品新規追加成形 デザインビュー

Q10製品新規成形親図番更新 デザインビュー

Q10製品新規親図番更新 クエリの概要

項目 内容
クエリ名 Q10製品新規親図番更新
種別 更新クエリ
対象テーブル T10製品M
更新フィールド 親図番ID:[図番ID]
抽出条件 親図番ID Is Null(追加直後のレコードのみ)

Q10製品新規追加成形 クエリの概要

項目 内容
クエリ名 Q10製品新規追加成形
種別 追加クエリ
追加先テーブル T11製品成形
追加フィールド 図番ID・親図番ID

加工課(T12製品加工)・印刷課(T14製品印刷)・品証課(T13製品品証)・生産管理(T19製品生産管理)の追加クエリも同じ構成で図番IDと親図番IDのみを追加します。


仕入先製品マスタ登録

製品の仕入先情報をT30仕入先製品Mに登録するエリアです。新規登録フォーム右上に独立したエリアとして配置されており、専用の登録・クリアボタンを持ちます。仕入先・仕入先単価・関連工程(成形・加工・印刷・材料)・有効・手配・備考を入力して登録します。登録済みの仕入先情報は下部の仕入先情報サブフォームに一覧表示されます。

仕入先製品マスタ登録エリア フォームビュー

T30仕入先製品M フィールド構成

仕入先製品マスタのテーブル構成です。

T30仕入先製品M フィールド構成

フィールド名 データ型 役割
ID オートナンバー型 主キー
仕入先コード 数値型 取引先マスタと連動
図番 短いテキスト 製品マスタと連動
図番ID 数値型 製品マスタと連動
仕入先単価 数値型 仕入先単価
旧単価 数値型 単価変動があった場合の旧単価
単位 短いテキスト 製品の単位
メモ1 短いテキスト メモ
備考 短いテキスト 仕入先備考
手配 Yes/No型 手配の有無
有効 Yes/No型 仕入先マスタとしての有効有無
成形課 Yes/No型 成形課担当かの有無
加工課 Yes/No型 加工課担当かの有無
印刷課 Yes/No型 印刷課担当かの有無
材料課 Yes/No型 材料課担当かの有無
登録日 日付/時刻型 登録日
取引先コード 数値型 顧客コード
金型ID 数値型 用金型のID

サブマクロ:仕入先登録

未入力チェック(図番・取引先コード・仕入先コード・仕入先単価・関連工程)と図番重複チェックを経てQ10製品新規仕入先追加を実行し、T30仕入先製品Mにレコードを追加します。登録後はキャンセルマクロで仕入先エリアをクリアします。

サブマクロ:仕入先登録

サブマクロのテキスト表示
サブマクロ:仕入先登録
  If  IsNull([図番])  Then
    メッセージボックス(図番が入力されていません, はい, 警告, 未入力)
    コントロールの移動(図番)
    マクロの中止
  If 文の最後
  If  IsNull([取引先コード])  Then  ・・・(取引先コード未入力チェック)
  If  IsNull([仕入先コード])  Then  ・・・(仕入先コード未入力チェック)
  If  IsNull([仕入先単価])  Then  ・・・(仕入先単価未入力チェック)
  If  [関連工程]=0  Then
    メッセージボックス(関連工程が選択されていません, はい, 警告, 未入力)
    マクロの中止
  If 文の最後
  If  DCount("図番","T10製品M","[図番]=[Forms]![F10製品新規]![図番]")<>0  Then
    メッセージボックス(登録しようとしている図番は既に登録されていますので仕入先製品マスタにも登録できません。確認してください, はい, 警告, 重複)
    コントロールの移動(図番)
    マクロの中止
  If 文の最後
  警告音
  If  MsgBox("新規登録中の図番で仕入先製品マスタに登録してよろしいですか?",4+32,"確認")=6  Then
    メッセージの設定(いいえ)
    クエリを開く(Q10製品新規仕入先追加, データシート, 編集)
    メッセージボックス(新規製品マスタ登録中の仕入先製品マスタを追加しました, はい, なし, 登録完了)
    マクロの実行(M10製品新規.仕入先クリア, , )
    マクロの中止
  Else
    メッセージボックス(中止しました, はい, 警告, 中止)
    マクロの中止
  If 文の最後
サブマクロの最後

マクロの概要

ステップ 処理 内容
1〜5 未入力チェック 図番・取引先コード・仕入先コード・仕入先単価・関連工程
6 重複チェック 図番がT10製品Mに既存の場合に登録不可として警告
7 確認メッセージ 登録確認
8 クエリを開く Q10製品新規仕入先追加でT30仕入先製品Mに追加
9 メッセージボックス 登録完了メッセージを表示
10 マクロの実行 仕入先クリアで入力エリアをリセット

マクロの設置場所

項目 内容
フォーム F10製品新規
コントロール 仕入先登録ボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:仕入先登録

Q10製品新規仕入先追加

T30仕入先製品Mに仕入先情報を追加する追加クエリです。

Q10製品新規仕入先追加 デザインビュー

Q10製品新規仕入先追加 クエリの概要

項目 内容
クエリ名 Q10製品新規仕入先追加
種別 追加クエリ
追加先テーブル T30仕入先製品M

Q10製品新規仕入先追加 フィールド構成

追加先フィールド 内容
図番ID [Forms]![F10製品新規]![図番ID] 図番IDを追加
取引先コード [Forms]![F10製品新規]![取引先コード] 取引先コードを追加
図番 [Forms]![F10製品新規]![図番] 図番を追加
仕入先単価 [Forms]![F10製品新規]![仕入先単価] 仕入先単価を追加
備考 [Forms]![F10製品新規]![備考] 備考を追加
手配 [Forms]![F10製品新規]![手配] 手配フラグを追加
有効 [Forms]![F10製品新規]![有効] 有効フラグを追加
成形課 [Forms]![F10製品新規]![成形課] 成形課フラグを追加
加工課 [Forms]![F10製品新規]![加工課] 加工課フラグを追加
印刷課 [Forms]![F10製品新規]![印刷課] 印刷課フラグを追加
材料課 [Forms]![F10製品新規]![材料課] 材料課フラグを追加
登録日 Date() 本日日付を追加
仕入先コード [Forms]![F10製品新規]![仕入先コード] 仕入先コードを追加

サブマクロ:仕入先クリア

仕入先エリアの入力フィールドをすべてNullまたはFalseに戻して再クエリを実行します。

サブマクロ:仕入先クリア

サブマクロのテキスト表示
サブマクロ:仕入先クリア
  値の代入([仕入先コード], Null)
  値の代入([仕入先単価], Null)
  値の代入([成形課], False)
  値の代入([加工課], False)
  値の代入([印刷課], False)
  値の代入([材料課], False)
  値の代入([有効], False)
  値の代入([手配], False)
  値の代入([備考], Null)
  再クエリ()
  マクロの中止
サブマクロの最後

マクロの概要

処理 内容
値の代入(Null) 仕入先コード・仕入先単価・備考をNullに初期化
値の代入(False) 成形課・加工課・印刷課・材料課・有効・手配をFalseに初期化
再クエリ 仕入先情報サブフォームを更新

マクロの設置場所

項目 内容
マクロ M10製品新規
サブマクロ 仕入先クリア
呼び出し元 サブマクロ:仕入先登録内の「マクロの実行」から呼び出し

キャンセルボタン

フォーム上の全コントロールを初期値に戻します。登録完了後にも自動実行されてフォームをクリア状態に戻します。

サブマクロ:キャンセル

サブマクロ:キャンセル

サブマクロのテキスト表示
サブマクロ:キャンセル
  値の代入
      アイテム  = [図番]
      式        = Null
  値の代入([取引先コード], Null)
  値の代入([品名], Null)
  値の代入([単価], Null)
  値の代入([成形課], False)
  値の代入([加工課], False)
  値の代入([印刷課], False)
  値の代入([品証課], False)
  値の代入([業務課], False)
  値の代入([営業課], False)
  値の代入([現品票区分], False)
  値の代入([成形フォーキャスト], False)
  値の代入([加工フォーキャスト], False)
  値の代入([重要事項], Null)
  値の代入([備考], Null)
  値の代入([営業メモ], Null)
  値の代入([登録日], Date())
  値の代入([営業メモ], Null)
  値の代入([工程1], Null)
  値の代入([工程2], Null)
  値の代入([工程3], Null)
  値の代入([工程4], Null)
  値の代入([工程5], Null)
  値の代入([工程6], Null)
  値の代入([工程7], Null)
  値の代入([工程8], Null)
  値の代入([工程9], Null)
  値の代入([工程10], Null)
  値の代入([工程11], Null)
  値の代入([工程12], Null)
  値の代入([工程13], Null)
  値の代入([工程14], Null)
  値の代入([工程15], Null)
  値の代入([工程16], Null)
  値の代入([工程作業者1], Null)
  値の代入([工程作業者2], Null)
  値の代入([工程作業者3], Null)
  値の代入([工程作業者4], Null)
  値の代入([工程作業者5], Null)
  値の代入([工程作業者6], Null)
  値の代入([工程作業者7], Null)
  値の代入([工程作業者8], Null)
  値の代入([工程作業者9], Null)
  値の代入([工程作業者10], Null)
  値の代入([工程作業者11], Null)
  値の代入([工程作業者12], Null)
  値の代入([工程作業者13], Null)
  値の代入([工程作業者14], Null)
  値の代入([工程作業者15], Null)
  値の代入([工程作業者16], Null)
  値の代入([業種コード], Null)
  値の代入([工程群コード], Null)
  値の代入([納期設定], 0)
  値の代入([親図番ID], Null)
  マクロの実行
        マクロ名        M10製品新規.仕入先クリア
        実行回数
        繰り返し条件式
  マクロの中止
サブマクロの最後

マクロの概要

処理 内容
値の代入(Null) 図番・取引先コード・品名・単価・重要事項・備考・営業メモ・工程1〜16・工程作業者1〜16・業種コード・工程群コード・親図番IDをNullに初期化
値の代入(False) 成形課〜営業課・現品票区分・フォーキャストをFalseに初期化
値の代入(Date()) 登録日を本日日付にリセット
値の代入(0) 納期設定を0にリセット
マクロの実行 仕入先クリアを実行して仕入先エリアもリセット

マクロの設置場所

項目 内容
フォーム F10製品新規
コントロール キャンセルボタン
イベント クリック時
呼び出し元 M10製品新規 > サブマクロ:キャンセル

作業工程ボタン・工程担当ボタン

作業工程・工程担当の一括設定ボタンはフッターに配置されています。操作の仕組みは基本情報ページで解説しています。

作業工程ボタンの解説はこちら

工程担当ボタンの解説はこちら


まとめ

製品マスタの新規登録は管理者が行い、T10製品Mへの基本情報登録と関連課テーブルへの図番ID追加を1回の操作で完結させる設計です。シート図番生成・親図番呼出・取引先検索の3つのポップアップで入力工数を削減しながら、未入力チェック・重複チェックで登録ミスを防ぎます。仕入先製品マスタへの登録も同じフォームから行え、管理者が新規登録を完了することで各課担当者が課別情報を登録するベースが整います。

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

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