仕入先発注は、受注データを起点に成形課の製造指示を確定させるページです。内製・外製の判断、フォーキャスト発注、シート発注、各種帳票発行、日次更新による製造指示の確定までをこの1画面から行います。マスタ発注・フォーキャスト発注・シート発注それぞれで画面のコンボボックスや履歴表示が切り替わる設計になっており、成形課の業務フローに沿って解説していきます。
仕入先発注とは
仕入先発注は、受注から自動生成された製造データをもとに、実際の生産・調達を確定させる工程です。受注に紐づかない製造依頼や、先行生産のためのフォーキャスト発注もここから発生します。
仕入先発注の役割
| 項目 | 内容 |
|---|---|
| 内製品の製造指示 | 自社工場(成形課)で生産する製品の納期・数量を整えて決定する |
| 外製品の製造指示 | 外製品の納期・数量を決定する |
| 新規発注(受注以外) | 売上が立たないが製造が必要な案件(社内シート・作り直し品・営業サンプル・開発商品等)を発注する |
| フォーキャスト発注 | 客先発信のフォーキャストを参照した先行生産の製造指示を発注する |
| シート発注 | 2次工程(抜き加工等)で製品になるゴムシートを手配する(シート自体は売上不立) |
| 注文書発行 | 外製品向けの注文書を発行する |
| 現品票発行 | 製造指示・製造記録用の現品票を発行する |
| 2次加硫依頼書発行 | 成形後に2次加硫が必要な材料の場合に依頼書を発行する |
| 日次更新 | 製造指示を確定し、外製品は納期確認へ、内製品は材料準備部署へデータを渡す |
このページでは以下のことを解説しています
- 発注区分の切替(マスタ発注/フォーキャスト発注/シート発注)
- 仕入先・図番の選択と検索ポップアップ
- 手配番号の自動採番と親手配番号照会
- 登録ボタンのマクロ設計(入力チェック→T31仕入先発注Mへ追加)
- 登録中データ一覧の操作(手配/在庫出荷の排他トグル、Fフラグ連動、数訂ポップアップ)
- 帳票発行(注文書印刷・現品票印刷・2次加硫依頼書印刷)
- 仕入先製品マスタ追加ボタン
- 仕入先発注履歴サブフォームと適用ボタン
- 日次更新(製造指示の確定)
画面の構成
成形課の仕入先発注登録フォームです。発注区分(マスタ発注/フォーキャスト発注/シート発注)の選択によって、図番コンボボックスや履歴サブフォームの表示内容が切り替わります。
仕入先発注登録成形課 フォームビュー(マスタ発注)
仕入先発注登録成形課 フォームビュー(フォーキャスト発注)
仕入先発注登録成形課 フォームビュー(シート発注)
画面の概要
| 項目 | 内容 |
|---|---|
| 発注区分 | マスタ発注/フォーキャスト発注/シート発注のオプショングループ |
| 仕入先 | 仕入先コンボボックス。仕入先検索ボタンからのあいまい検索も可能 |
| 図番/品名 | 選択した仕入先の仕入先製品マスタ登録済み図番のみ表示 |
| フォーキャスト図番 | フォーキャスト発注時のみ表示。フォーキャスト製品として登録されたデータのみ表示 |
| シート選択 | シート発注時のみ表示。シート類選択ポップアップを開く |
| 手配番号 | 自動採番されるが任意で上書き可能 |
| 納期/納期設定 | 納期設定には製品マスタのリードタイムが表示され、注文納期から逆算した納期を自動設定 |
| 現品票不要 | チェックすると当該レコードのみ現品票発行の対象から除外 |
| 親手配番号 | 作り直し等で元の手配番号と紐付ける場合に使用 |
| 仕入先発注履歴 | 選択中の仕入先の過去発注実績を一覧表示(発注区分によりサブフォームが切替) |
| 登録中データ一覧 | 未確定の製造データを一覧表示し、手配/在庫出荷、数量訂正などを操作 |
F31仕入先発注成形課 デザインビュー
非連結コントロールの構成
| # | 名前 | コントロールソース |
|---|---|---|
| ① | 図番ID | =[図番].column(2) |
| ② | ID | =[図番].column(4) |
| ③ | 取引先コード | =[図番].column(5) |
| ④ | 成形フォーキャスト | =[図番].column(7) |
| ⑤ | 単位 | =[図番].column(3) |
| ⑥ | 連番 | =DCount(“*”,”T31仕入先発注成形自動手番”)+1 |
| ⑦ | 採番 | =Format(Date(),”yymmdd”) & “S” & Format([連番]) & “-” & Format([仕入先コード],”000″) |
その他、登録中データの件数(=DCount(““,”Q31仕入先発注成形課サブ”))、手配件数(=DSum(“手配件数”,”Q31仕入先発注成形課サブ”))、金額(=IIf(IsNull([数量]),””,[仕入先単価][数量]))、発注者(=[発注者コード].column)、仕入先発注履歴の件数(=DCount(“*”,”Q31仕入先発注成形課履歴サブ”))も非連結で構成されています。図番/フォーキャスト図番コンボボックスの列構成は共通です。
図番/フォーキャスト図番コンボボックス 列構成
列番号の構成
| 列番号 | フィールド |
|---|---|
| (0) | 図番(表示列) |
| (1) | 仕入先単価 |
| (2) | 図番ID |
| (3) | 単位 |
| (4) | ID |
| (5) | 取引先コード |
| (6) | 取引先名:略称 |
| (7) | 成形フォーキャスト |
| (8) | 成形課 |
| (9) | 仕入先コード |
登録中データ一覧(Q31仕入先発注成形課サブ)は、成形課=True・成形発行=False・現品票区分=”1″の条件で抽出しています。取数・在庫数・在庫更新日は製品マスタ側の値を都度参照する結合表示です。
「発注区分」オプショングループの切替
発注区分のオプショングループを切り替えると、図番/F図番コンボボックスと履歴サブフォームのVisibleが連動し、入力途中のデータは自動でクリアされます。
| 発注区分 | 図番 | F図番 | 履歴サブ | 履歴Fサブ | シート選択 |
|---|---|---|---|---|---|
| 1.マスタ発注 | 表示 | 非表示 | 表示 | 非表示 | 非表示 |
| 2.フォーキャスト発注 | 非表示 | 表示 | 非表示 | 表示 | 非表示 |
| 3.シート発注 | 表示 | 非表示 | 表示 | 非表示 | 表示 |
サブマクロ:発注区分
- サブマクロのテキスト表示
-
サブマクロ:発注区分 If [Forms]![F31仕入先発注成形課]![発注区分]=1 Then マクロの実行 (M31仕入先発注成形.キャンセル,,) 値の代入 ([Forms]![F31仕入先発注成形課]![図番].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴サブ].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![シート選択].[Visible], False) コントロールの移動 (仕入先コード) マクロの中止 If 文の最後 If [Forms]![F31仕入先発注成形課]![発注区分]=2 Then マクロの実行 (M31仕入先発注成形.キャンセル,,) 値の代入 ([Forms]![F31仕入先発注成形課]![図番].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴サブ].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![シート選択].[Visible], False) コントロールの移動 (仕入先コード) マクロの中止 If 文の最後 If [Forms]![F31仕入先発注成形課]![発注区分]=3 Then マクロの実行 (M31仕入先発注成形.キャンセル,,) 値の代入 ([Forms]![F31仕入先発注成形課]![図番].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ].[Visible], False) 値の代入 ([Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴サブ].[Visible], True) 値の代入 ([Forms]![F31仕入先発注成形課]![シート選択].[Visible], True) コントロールの移動 (仕入先コード) マクロの中止 If 文の最後 サブマクロの最後
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 発注区分 |
| イベント | 更新後処理 |
キャンセルマクロ、キャンセルボタン
発注区分を切り替えるたびに、まずキャンセルマクロで入力途中のデータをリセットします。前の区分の入力値が残ったまま誤って登録されるのを防ぐための処理です。
サブマクロ:キャンセル
- サブマクロのテキスト表示
-
サブマクロ:キャンセル 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先コード], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![図番], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![発注日], Date()) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![納期], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![数量], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先単価], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![備考], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![現品票], False) 値の代入 ([Forms]![F31仕入先発注成形課]![納期設定], Null) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号元], Null) 再クエリ () マクロの中止 サブマクロの最後
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 発注区分(更新後処理から呼び出し)、キャンセルボタン |
| イベント | 更新後処理/クリック時 |
シート選択ボタン
シート発注時に、既存図番から素材となるゴムシートを絞り込んで選択するためのボタンです。受注管理カテゴリーで解説した「シート類選択ポップアップ」と同一のフォーム・マクロを利用しており、選択フラグ(選択コントロール=2)で仕入先発注登録成形課からの呼び出しであることを識別し、適用ボタンを押した時に図番と仕入先コード(自社工場固定)を転記します。
シート選択ポップアップフォームの仕組み
シート受注の図番は、製品マスタで登録された規則性のある命名(材質・色調・硬度・厚み・サイズの組み合わせ)に沿っています。この規則性を活かし、5項目の絞り込み検索だけでお目当てのシート図番へ辿り着けるようにしたのが、シート類選択ポップアップで[…]
仕入先検索ボタン
仕入先コンボボックスとは別に、フリガナのあいまい検索で仕入先を探せる専用フォームを用意しています。このフォームは成形課・加工課・印刷課の仕入先発注登録フォームで共通利用されており、サブフォームには転記先ごとの適用ボタンが3つ(成形用・加工用・印刷用)重ねて配置されています。開く時のマクロで、呼び出し元に対応するボタンだけをVisible=Trueにすることで、操作する担当者には自分の課の適用ボタンしか見えない仕組みです。
F31仕入先発注取引先検索 フォームビュー
デザインビューの一部
検索ボックスにフリガナを入力して再検索すると一覧が絞り込まれ、成形課からの呼び出しであれば「適用成形」ボタンのみが表示された状態で選択します。
サブマクロ:取引先検索開く
- サブマクロのテキスト表示
-
サブマクロ:取引先検索開く フォームを開く (F31仕入先発注取引先検索, フォームビュー, , , , 標準) 値の代入 アイテム = [Forms]![F31仕入先発注取引先検索]![F31仕入先発注取引先検索サブ]![適用成形].[Visible] 式 = True マクロの中止 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| フォームを開く | F31仕入先発注取引先検索をフォームビューで開く |
| 値の代入 | サブフォーム上の「適用成形」ボタンをVisible=Trueにして、成形課からの呼び出しであることを識別させる |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 仕入先検索ボタン |
| イベント | クリック時 |
Q31仕入先発注取引先検索 クエリデザインビュー
Q31仕入先発注取引先検索 フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 取引先コード | T05取引先M | |
| 取引先名 | T05取引先M | |
| 略称 | T05取引先M | |
| 住所:[都道府県] & 住所1等 | T05取引先M | |
| フリガナ | T05取引先M | Like “” & [Forms]![F31仕入先発注取引先検索]![検索] & “*“ |
| ID | T05取引先M |
適用ボタン
一覧から選んだ仕入先コードを適用ボタンで仕入先発注登録成形課フォームに転記し、検索フォームを閉じます。
サブマクロ:取引先適用
サブマクロの概要
| 項目 | 内容 |
|---|---|
| 値の代入 | 検索フォームのサブフォームで選択した行の取引先コードを、仕入先発注登録成形課フォームの仕入先コードへ転記 |
| ウィンドウを閉じる | 検索フォームを閉じる |
| 再クエリ | 転記後、関連コンボボックス・サブフォームを再クエリして最新状態に更新 |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注取引先検索 |
| コントロール | 「適用成形」ボタン |
| イベント | クリック時 |
手配番号の自動採番と親手配番号照会
図番(またはフォーキャスト図番)を選択した際の更新後処理で、発注区分に応じて手配番号を自動採番します。マスタ発注の場合のみ、親手配番号の有無を確認するメッセージが表示され、必要に応じて過去の受注から親手配番号を検索できます。テーブルへの登録処理とクリーンアップの仕組みは、登録ボタン・日次更新の各セクションで解説します。
サブマクロ:自動手番
- サブマクロのテキスト表示
-
サブマクロ:自動手番 If [Forms]![F31仕入先発注成形課]![発注区分]=1 Then 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], [Forms]![F31仕入先発注成形課]![採番]) 値の代入 ([仕入先単価], DLookUp("仕入先単価","T30仕入先製品M","[ID]=[Forms]![F31仕入先発注成形課]![ID]")) 値の代入 ([納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F31仕入先発注成形課]![図番ID]")) 警告音 If MsgBox("親手番があって分割手配の場合は親手番があるなら「はい」無ければ「いいえ」を選択してください",4+32,"確認")=6 Then フォームを開く (F31仕入先発注成形課親手番, フォームビュー, , , , 標準) マクロの中止 Else コントロールの移動 (納期) 再クエリ () マクロの中止 If 文の最後 If 文の最後 If [Forms]![F31仕入先発注成形課]![発注区分]=2 Then 値の代入 ([図番], [F図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], "F" & [Forms]![F31仕入先発注成形課]![採番]) 値の代入 ([仕入先単価], DLookUp("仕入先単価","T30仕入先製品M","[ID]=[Forms]![F31仕入先発注成形課]![ID]")) 値の代入 ([納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F31仕入先発注成形課]![図番ID]")) コントロールの移動 (納期) 再クエリ () マクロの中止 If 文の最後 If [Forms]![F31仕入先発注成形課]![発注区分]=3 Then 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], [Forms]![F31仕入先発注成形課]![採番]) 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先単価], DLookUp("仕入先単価","T30仕入先製品M","[ID]=[Forms]![F31仕入先発注成形課]![ID]")) 値の代入 ([Forms]![F31仕入先発注成形課]![納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F31仕入先発注成形課]![図番ID]")) コントロールの移動 (納期) 再クエリ () マクロの中止 If 文の最後 サブマクロの最後
サブマクロの概要
| 発注区分 | 処理内容 |
|---|---|
| 1.マスタ発注 | 手配番号に自動採番値を代入。仕入先単価・納期設定を製品マスタ側からDLookupで補完。親手番の有無を確認するメッセージを表示し、「はい」なら親手番照会ポップアップを開く |
| 2.フォーキャスト発注 | F図番の値を図番に転記した上で、手配番号の先頭に「F」を付与して自動採番。仕入先単価・納期設定も同様に補完 |
| 3.シート発注 | マスタ発注と同じ採番・補完処理(親手番確認は行わない) |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 図番/F図番 |
| イベント | 更新後処理 |
親手配番号照会
マスタ発注で親手番があると回答した場合に開くポップアップです。同一図番・同一仕入先の過去の受注データから、分割手配の元となる手配番号を検索して転記します。
◆スクショ:製造管理新規クエリ自動手番親手番.jpg Q31仕入先発注成形課親手番サブ クエリデザインビュー
Q31仕入先発注成形課親手番サブ フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 取引先コード | T20受注M | [Forms]![F31仕入先発注成形課]![取引先コード] |
| 取引先名:略称 | T05取引先M | |
| 図番 | T20受注M | [Forms]![F31仕入先発注成形課]![図番] |
| 納期 | T20受注M | |
| 数量 | T20受注M | |
| 手配番号 | T20受注M | |
| 受注日 | T20受注M | 降順 |
| ID | T20受注M |
F31仕入先発注成形課親手番 フォームビュー
一覧から対象の受注を選び、適用ボタンから手配番号を転記します。
サブマクロ:適用親手番
- サブマクロのテキスト表示
-
サブマクロ:適用親手番 値の代入 アイテム = [Forms]![F31仕入先発注成形課]![手配番号元] 式 = [Forms]![F31仕入先発注成形課親手番]![手配番号] ウィンドウを閉じる (,, 確認) コントロールの移動 (納期) マクロの中止 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| 値の代入 | 選択した受注の手配番号を、仕入先発注登録成形課フォームの手配番号元へ転記 |
| ウィンドウを閉じる | 親手配番号照会フォームを閉じる |
| コントロールの移動 | 納期へフォーカス移動 |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課親手番 |
| コントロール | 各行の「適用」リンク |
| イベント | クリック時 |
課ごとに独立した自動採番テーブルを持たせる設計
手配番号の自動採番は課ごとに専用テーブルを分けています。
| 課 | 採番テーブル | 手配番号の接頭 |
|---|---|---|
| 成形課 | T31仕入先発注成形自動手番 | S |
| 加工課 | T31仕入先発注加工自動手番 | K |
| 印刷課 | T33仕入先発注印刷自動手番 | P |
1テーブルで課列を持たせて共有する方法も可能ですが、あえて分けることで各課の採番処理が完全に独立し、他課の登録処理が自課の採番に影響を与えない設計になっています。
(例)
成形課の自動採番手配番号:260901S1-002
加工課の自動採番手配番号:260901K1-002
印刷課の自動採番手配番号:260901P1-002
登録ボタンのマクロ設計
入力チェック→重複チェック→確認メッセージを経て、T31仕入先発注M・自動手番テーブルへの追加が行われます。未入力チェックは仕入先・図番・発注日・手配番号・納期・数量・仕入先単価・発注者コードの全項目に対して行われ、いずれか1つでも欠けていれば該当コントロールにフォーカスを移して処理を中断します。
サブマクロ:登録
- サブマクロのテキスト表示
-
サブマクロ:登録 If IsNull([仕入先コード]) Then メッセージボックス (仕入先が入力されていません, はい, 警告, 未記入) コントロールの移動 (仕入先コード) マクロの中止 If 文の最後 If IsNull([図番]) Then メッセージボックス (図番が入力されていません, はい, 警告, 未記入) コントロールの移動 (図番) マクロの中止 If 文の最後 If [発注区分]=1 Then If DCount("[図番]","T30仕入先製品M","[図番] = [Forms]![F31仕入先発注成形課]![図番] ")=0 Then メッセージボックス (図番が仕入先製品マスタに存在しません, はい, 警告, エラー) コントロールの移動 (図番) マクロの中止 If 文の最後 If 文の最後 If [発注区分]=2 Then If DCount("[図番]","T30仕入先製品M","[図番] = [Forms]![F31仕入先発注成形課]![F図番] ")=0 Then メッセージボックス (フォーキャスト図番が仕入先製品マスタに存在しません, はい, 警告, エラー) コントロールの移動 コントロール名 F図番 マクロの中止 If 文の最後 If 文の最後 If [発注区分]=3 Then If DCount("[図番]","T30仕入先製品M","[図番] = [Forms]![F31仕入先発注成形課]![図番] ")=0 Then メッセージボックス (シート図番が仕入先製品マスタに存在しません, はい, 警告, エラー) コントロールの移動 (図番) マクロの中止 If 文の最後 If 文の最後 If IsNull([発注日]) Then メッセージボックス (発注日が入力されていません, はい, 警告, 未記入) コントロールの移動 (発注日) マクロの中止 If 文の最後 If IsNull([手配番号]) Then メッセージボックス (手配番号が入力されていません, はい, 警告, 未記入) コントロールの移動 (手配番号) マクロの中止 If 文の最後 If IsNull([納期]) Then メッセージボックス (納期が入力されていません, はい, 警告, 未記入) コントロールの移動 (納期) マクロの中止 If 文の最後 If IsNull([数量]) Then メッセージボックス (数量が入力されていません, はい, 警告, 未記入) コントロールの移動 (数量) マクロの中止 If 文の最後 If IsNull([仕入先単価]) Then メッセージボックス (仕入先単価が入力されていません。仕入先単価が不明もしくは不要の場合は0を入力してください, はい, 警告, 未記入) コントロールの移動 コントロール名 仕入先単価 マクロの中止 If 文の最後 If IsNull([発注者コード]) Then メッセージボックス (発注者が入力されていません, はい, 警告, 未記入) コントロールの移動 (発注者コード) マクロの中止 If 文の最後 If DCount("手配番号","T31仕入先発注M","[手配番号] = [Forms]![F31仕入先発注成形課]![手配番号] ")<>0 Then メッセージボックス (登録しようとしたデータの手配番号は既に登録されています。手配番号を取り直してください。, はい, 警告, 重複) コントロールの移動 (手配番号) マクロの中止 If 文の最後 警告音 If MsgBox("新規仕入先発注を登録してよろしいですか?",4+32,"確認")=6 Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注成形課追加, データシート, 編集) クエリを開く (Q31仕入先発注成形課自動手番追加, データシート, 編集) メッセージボックス (新規仕入先発注を登録しました, はい, なし, 登録済) マクロの実行 (M31仕入先発注成形.キャンセル,,) コントロールの移動 (仕入先コード) 再クエリ () マクロの中止 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 サブマクロの最後
サブマクロの概要
| チェック項目 | 内容 |
|---|---|
| 未入力チェック | 仕入先・図番・発注日・手配番号・納期・数量・仕入先単価・発注者コードを個別に検証 |
| 図番の仕入先製品マスタ照合 | 発注区分ごとに対象コンボボックス(図番/F図番)の値がT30仕入先製品Mに存在するか確認 |
| 手配番号の重複チェック | T31仕入先発注Mに同じ手配番号が既に存在しないか確認 |
| 確認メッセージ | 「新規仕入先発注を登録してよろしいですか?」でYes/No分岐 |
| 登録処理 | Q31仕入先発注成形課追加・Q31仕入先発注成形課自動手番追加の2クエリを実行 |
| 登録後処理 | 完了メッセージ表示後、キャンセルマクロでフォームをクリアし仕入先コードへフォーカス |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 登録ボタン |
| イベント | クリック時 |
Q31仕入先発注成形課追加 クエリビルダー(前半)
Q31仕入先発注成形課追加 レコードの追加先フィールド
| 追加先フィールド | 式 |
|---|---|
| 手配番号 | [Forms]![F31仕入先発注成形課]![手配番号] |
| 発注日 | [Forms]![F31仕入先発注成形課]![発注日] |
| 仕入先コード | [Forms]![F31仕入先発注成形課]![仕入先コード] |
| 図番ID | [Forms]![F31仕入先発注成形課]![ID] |
| 図番 | [Forms]![F31仕入先発注成形課]![図番] |
| 納期 | [Forms]![F31仕入先発注成形課]![納期] |
| 数量 | [Forms]![F31仕入先発注成形課]![数量] |
| 仕入先単価 | [Forms]![F31仕入先発注成形課]![仕入先単価] |
| 備考 | [Forms]![F31仕入先発注成形課]![備考] |
| 分納残数 | [Forms]![F31仕入先発注成形課]![数量] |
| 単位 | [Forms]![F31仕入先発注成形課]![単位] |
| 発注者コード | [Forms]![F31仕入先発注成形課]![発注者コード] |
| 現品票 | [Forms]![F31仕入先発注成形課]![現品票不要] |
| 成形課 | [Forms]![F31仕入先発注成形課]![成形課] |
| 取引先コード | [Forms]![F31仕入先発注成形課]![取引先コード] |
| 現品票区分 | [Forms]![F31仕入先発注成形課]![現品票区分] |
| 受注区分 | “1” |
| 設定数量 | [Forms]![F31仕入先発注成形課]![数量] |
| 成形フォーキャスト | [Forms]![F31仕入先発注成形課]![成形フォーキャスト] |
| 発注区分 | [Forms]![F31仕入先発注成形課]![発注区分] |
| フォーキャスト発注 | IIf([Forms]![F31仕入先発注成形課]![発注区分]=2,-1,0) |
| 納期設定 | [Forms]![F31仕入先発注成形課]![納期設定] |
| 手配番号元 | [Forms]![F31仕入先発注成形課]![手配番号元] |
- 成形課:図番選択時に非連結の「成形課」コントロールへDLookupで表示している値をそのまま参照(成形課向け発注のため常にTrue)
- 取引先コード:図番コンボボックスの列(5)(=[図番].column)から補完される非連結コントロールを参照。客先の取引先コードを保持
- 受注区分:仕入先発注からの新規登録には元となる受注データが存在しないため、固定値”1″を設定
- フォーキャスト発注:発注区分が2(フォーキャスト発注)ならTrue(-1)、それ以外はFalse(0)
Q31仕入先発注成形課自動手番追加 クエリビルダー
Q31仕入先発注成形課自動手番追加 レコードの追加先フィールド
| 追加先フィールド | 式 |
|---|---|
| 自動手配番号 | [Forms]![F31仕入先発注成形課]![手配番号] |
| 登録日 | Date() |
登録中データ一覧の操作
登録中データ一覧は複数の担当者が同時に開く可能性があるため、チェックボックスは使用可能にしつつ編集ロックは「はい」に設定し、直接編集ではなく更新クエリ経由でのみ値を書き換える設計にしています。手配・在庫出荷は互いに排他で連動し、Fフラグ(フォーキャスト表示)と歩留まりを考慮した数量訂正機能も備えています。
手配/在庫出荷の排他トグルと✔ボタン
「手配」と「在庫出荷」はどちらか一方だけが有効になる関係です。✔ボタンをクリックすると、その時点の値を判定して反対の状態に切り替える更新クエリを実行します。手配を解除すると自動的に在庫出荷が立ち、在庫出荷を解除すると自動的に手配が立ちます。
サブマクロ:手配
- サブマクロのテキスト表示
-
サブマクロ:手配 If [手配]=False Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注手配成形課False更新, データシート, 編集) コントロールの移動 (閉じる) 再クエリ (手配件数) マクロの中止 If 文の最後 If [手配]=True Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注手配成形課True更新, データシート, 編集) コントロールの移動 (閉じる) 再クエリ (手配件数) マクロの中止 If 文の最後 サブマクロの最後
サブマクロ:在庫出荷
- サブマクロのテキスト表示
-
サブマクロ:在庫出荷 If [在庫出荷]=False Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注在庫出荷成形課False更新, データシート, 編集) クエリを開く (Q31仕入先発注手配成形課True更新, データシート, 編集) コントロールの移動 (閉じる) 再クエリ (手配件数) マクロの中止 If 文の最後 If [在庫出荷]=True Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注在庫出荷成形課True更新, データシート, 編集) クエリを開く (Q31仕入先発注手配成形課False更新, データシート, 編集) コントロールの移動 (閉じる) 再クエリ (手配件数) マクロの中止 If 文の最後 サブマクロの最後
Q31仕入先発注在庫出荷成形課False更新 クエリビルダー
Q31仕入先発注在庫出荷成形課True更新 クエリビルダー
Q31仕入先発注手配成形課True更新 クエリビルダー
Q31仕入先発注手配成形課False更新 クエリビルダー
更新クエリの概要
| クエリ名 | 在庫出荷 | 手配 | 抽出条件 |
|---|---|---|---|
| Q31仕入先発注在庫出荷成形課False更新 | True | False | 成形課=True、ID=対象レコード |
| Q31仕入先発注在庫出荷成形課True更新 | False | True | 成形課=True、ID=対象レコード |
| Q31仕入先発注手配成形課True更新 | ー | True | 成形課=True、ID=対象レコード |
| Q31仕入先発注手配成形課False更新 | ー | False | 成形課=True、ID=対象レコード |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課サブ(登録中データ一覧) |
| コントロール | 手配ボックスの✔ボタン/在庫出荷ボックスの✔ボタン |
| イベント | クリック時 |
数訂ボタンポップアップ(生産数量の訂正)
数訂ボタンから、歩留まりを考慮した生産数(設定数量)を訂正するポップアップを開きます。手配否のデータや自社工場(仕入先コード=2)向けデータは、このポップアップでは訂正できない制御が入っています。
サブマクロ:数訂ポップ
- サブマクロのテキスト表示
-
サブマクロ:数訂ポップ If [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課サブ]![手配]=False Then メッセージボックス (手配否のデータは訂正できません。手配否を解除してから訂正してください。, はい, 警告, 訂正不可) マクロの中止 If 文の最後 If [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課サブ]![仕入先コード]=2 Then メッセージボックス (群馬工場への発注分はこの画面では数量訂正できません。自動発注数量調整の画面で行ってください。, はい, 警告, 訂正不可) マクロの中止 If 文の最後 フォームを開く (F31仕入先発注成形課数訂ポップ, フォームビュー, , , , 標準) 値の代入 アイテム = [Forms]![F31仕入先発注成形課数訂ポップ]![ID] 式 = [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課サブ]![ID] 値の代入 アイテム = [Forms]![F31仕入先発注成形課数訂ポップ]![数量] 式 = DLookUp("数量","T31仕入先発注M","[ID]=[Forms]![F31仕入先発注成形課数訂ポップ]![ID]") マクロの実行 マクロ名 M31仕入先発注成形.数訂調整 実行回数 繰り返し条件式 マクロの中止 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| 手配否チェック | 手配=Falseの場合は訂正不可メッセージを表示して中止 |
| 自社工場チェック | 仕入先コード=2(群馬工場)の場合は自動発注数量調整画面で対応する旨のメッセージを表示して中止 |
| フォームを開く | F31仕入先発注成形課数訂ポップを開く |
| 値の代入 | 対象レコードのID・顧客注文数(数量)をポップアップへ転記 |
| マクロの実行 | 数訂調整サブマクロを呼び出し、初期の確定数量(不良率5%込み)を自動計算 |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課サブ(登録中データ一覧) |
| コントロール | 数訂ボタン |
| イベント | クリック時 |
F31仕入先発注成形課数訂ポップ フォームビュー
F31仕入先発注成形課数訂ポップ デザインビュー
数訂ポップアップの構成
| 項目 | 内容 |
|---|---|
| ID | 非連結。対象レコードのIDを保持 |
| 数量 | 非連結。顧客注文数を表示(変更不可) |
| 設定不良率 | 非連結コンボボックス。デフォルト5%。製品特有の不良率を選択可能 |
| 確定数量 | 非連結。設定不良率に応じて自動計算された数量、または任意の数量を手入力可能 |
| 確定ボタン | 確定数量をT31仕入先発注Mの設定数量へ反映 |
数訂調整マクロ(不良率からの自動計算)
設定不良率コンボボックスの更新後処理で、顧客注文数に不良率を上乗せした確定数量を自動計算します。
サブマクロ:数訂調整
サブマクロの概要
| 項目 | 内容 |
|---|---|
| 値の代入 | 顧客注文数×(1+不良率/100)を切り上げ計算し、確定数量へ反映 |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課数訂ポップ |
| コントロール | 設定不良率 |
| イベント | 更新後処理 |
数訂確定更新マクロ
確定数量をT31仕入先発注Mの設定数量へ反映し、ポップアップを閉じます。
サブマクロ:数訂確定更新
- サブマクロのテキスト表示
-
サブマクロ:数訂確定更新 If IsNull([確定数量]) Then メッセージボックス (確定数量が空欄です, はい, 警告, 未入力) コントロールの移動 (確定数量) マクロの中止 Else 警告音 If MsgBox("数量訂正してよろしいですか?",4+32,"確認")=6 Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注成形課数訂ポップ更新, データシート, 編集) ウィンドウを閉じる (フォーム, F31仕入先発注成形課数訂ポップ, 確認) コントロールの移動 (閉じる) 再クエリ () マクロの中止 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 If 文の最後 サブマクロの最後
Q31仕入先発注成形課数訂ポップ更新 クエリビルダー
Q31仕入先発注成形課数訂ポップ更新 更新内容
| フィールド | 更新式 | 抽出条件 |
|---|---|---|
| 分納残数 | [Forms]![F31仕入先発注成形課数訂ポップ]![確定数量] | ID=[Forms]![F31仕入先発注成形課数訂ポップ]![ID] |
| 設定数量 | [Forms]![F31仕入先発注成形課数訂ポップ]![確定数量] | 同上 |
サブマクロ:数訂確定更新の概要
| 項目 | 内容 |
|---|---|
| 未入力チェック | 確定数量が空欄の場合は警告して中止 |
| 確認メッセージ | 「数量訂正してよろしいですか?」でYes/No分岐 |
| 更新処理 | Q31仕入先発注成形課数訂ポップ更新を実行し、設定数量・分納残数を確定数量で上書き |
| 後処理 | ポップアップを閉じて登録中データ一覧を再クエリ |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課数訂ポップ |
| コントロール | 確定ボタン |
| イベント | クリック時 |
帳票発行
登録中データ一覧をもとに、外製先向けの注文書・現品票・2次加硫依頼書を発行します。いずれも「プレビュー確認→印刷確認」の2段階確認フローで統一されています。
注文書印刷ボタン(外製分のみ)
注文書は外製品向けの帳票です。自社製造分は現品票で製造指示が完結するため対象外とし、日次更新前(成形発行=False)かつ手配対象(手配=True)の外製データ(仕入先コード≠2)のみを抽出します。外注先には客先の注文数を伝える必要がないため、印字される数量は自社側で確定した設定数量(発注数量)を使用します。
Q31仕入先発注成形課注文書印刷 クエリビルダー(前半)
つづき
Q31仕入先発注成形課注文書印刷 フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 手配番号 | T31仕入先発注M | |
| 取引先名 | T05取引先M | |
| 担当者 | T05取引先M | |
| 図番 | T31仕入先発注M | |
| 納期:[納期]-[納期設定] | T31仕入先発注M | |
| 数量(設定数量を反映) | T31仕入先発注M | |
| 仕入先単価 | T31仕入先発注M | |
| 備考 | T31仕入先発注M | |
| 成形発行 | T31仕入先発注M | False |
| 成形課 | T31仕入先発注M | True |
| 仕入先コード | T31仕入先発注M | <>2 |
| 手配 | T31仕入先発注M | True |
| 現品票区分 | T31仕入先発注M | “1” |
| 納期設定 | T31仕入先発注M | |
| 設定数量 | T31仕入先発注M |
サブマクロ:注文書印刷
- サブマクロのテキスト表示
-
サブマクロ:注文書印刷 If DCount("*","Q31仕入先発注成形課注文書印刷")=0 Then メッセージボックス (印刷するデータがありません, はい, 警告, データなし) マクロの中止 Else 警告音 If MsgBox("注文書をプレビューで確認してから印刷してください。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注成形課注文書印刷, 印刷プレビュー, , , 標準) If MsgBox("注文書を印刷します。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注成形課注文書印刷, 印刷, , , 標準) メッセージボックス (注文書の印刷が完了しました。, はい, なし, 印刷完了) ウィンドウを閉じる (レポート, R31仕入先発注成形課注文書印刷, 確認) マクロの中止 Else メッセージボックス (印刷を中止しました, はい, なし, 中止) ウィンドウを閉じる (レポート, R31仕入先発注成形課注文書印刷, 確認) マクロの中止 If 文の最後 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 If 文の最後 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| データ有無チェック | 対象データが0件なら「印刷するデータがありません」と表示して中止 |
| 印刷プレビュー確認 | 「プレビューで確認してから印刷してください」の確認後、印刷プレビューを開く |
| 印刷確認 | プレビュー確認後、印刷確認のメッセージでYes/No分岐 |
| 印刷実行 | Yesなら実際に印刷し、完了メッセージ後にレポートを閉じる |
| 中止処理 | Noならレポートを閉じて処理を中止 |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 注文書印刷ボタン |
| イベント | クリック時 |
R31仕入先発注成形課注文書印刷 プレビュー
注文書レポートの構成
| セクション | 内容 |
|---|---|
| 仕入先コードヘッダー | 取引先名・担当者・発注日を表示し、仕入先(外注先)ごとにページを分ける |
| 詳細 | 図番・設定数量・仕入先単価・金額(=仕入先単価×設定数量)・納期・手配番号・備考を明細行として表示 |
| 仕入先コードフッター | 件数・合計金額、自社の住所・社名・連絡先、承認・担当の押印欄を表示 |
外製先ごとに帳票が分かれる仕組みなので、複数の外注先に同時発注する場合でも1回の印刷操作で各社宛ての注文書がまとめて出力されます。
現品票印刷ボタン(外製分のみ)
現品票は、外製先に製造・検査記録をつけてもらうための帳票です。注文書と同じく仕入先コード≠2(自社工場以外)を対象とし、まだ現品票が発行されていない(現品票=False)データのみを抽出します。自社工場(仕入先コード=2)向けの現品票は、生産数量が確定する後続の生産管理カテゴリーで別途発行します。
Q31仕入先発注現品票印刷 クエリビルダー(一部)
Q31仕入先発注現品票印刷 主な抽出条件・算出フィールド
| フィールド | テーブル | 内容 |
|---|---|---|
| 手配番号 | T31仕入先発注M | 抽出条件:Not Like “SS*” |
| 現品票 | T31仕入先発注M | 抽出条件:False |
| 仕入先コード | T31仕入先発注M | 抽出条件:<>2 |
| 成形課 | T31仕入先発注M | 抽出条件:True |
| 手配 | T31仕入先発注M | 抽出条件:True |
| 現品票区分 | T31仕入先発注M | 抽出条件:”1″ |
| 成形発行 | T31仕入先発注M | 抽出条件:False |
| 納期 | [納期]-[納期設定] | 発注納期から社内リードタイム分を差し引いた計算式 |
| 取数 | T11製品成形 | 1金型あたりの取り数 |
| 設定数量 | T31仕入先発注M | 生産(発注)数 |
その他、取引先名・図番・品名・数量・備考・金型保管・検査項目・材料構成(配合番号1〜4・材料1〜4・色調1〜4・材料備考1〜4)・工程情報(工程1〜16・工程作業者1〜16)を各マスタから結合して1枚の現品票に集約しています。
サブマクロ:現品票印刷
- サブマクロのテキスト表示
-
サブマクロ:現品票印刷 If DCount("*","Q31仕入先発注現品票印刷")=0 Then メッセージボックス (印刷するデータがありません, はい, 警告, データなし) マクロの中止 Else 警告音 If MsgBox("現品票をプレビューで確認してから印刷してください。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注現品票印刷, 印刷プレビュー, , , 標準) If MsgBox("現品票を印刷します。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注現品票印刷, 印刷, , , 標準) メッセージボックス (現品票の印刷が完了しました。, はい, なし, 印刷完了) ウィンドウを閉じる (レポート, R31仕入先発注現品票印刷, 確認) マクロの中止 Else メッセージボックス (印刷を中止しました, はい, なし, 中止) ウィンドウを閉じる (レポート, R31仕入先発注現品票印刷, 確認) マクロの中止 If 文の最後 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 If 文の最後 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| データ有無チェック | 対象データが0件なら「印刷するデータがありません」と表示して中止 |
| 印刷プレビュー確認 | プレビューで確認後に印刷確認へ進む2段階の確認フロー(注文書印刷と同じ構成) |
| 印刷実行 | Yesなら印刷、完了メッセージ後にレポートを閉じる |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 現品票印刷ボタン |
| イベント | クリック時 |
R31仕入先発注現品票印刷 デザインビュー
現品票レポートの構成
| セクション | 内容 |
|---|---|
| ヘッダー | 取引先略称・現品票(成形課)・受注日/発注日 |
| 製造情報 | 図番・生産数量(設定数量)・手配番号・納期・取ケ数(取数)・注文数量(数量)・指定ショット数・品名・2次加硫条件・金型保管・備考・受注メモ |
| 材料情報 | 配合番号1〜4・原材料1〜4・色調1〜4・材料LOT.NO・材料備考1〜4 |
| 成形記録 | 機械NO・号機・生産数・成形圧力・金型表面温度・加硫時間・不良数・真空・ショット数・納入数・敷きゴム・金型洗浄など、外注先が製造時に記入する欄 |
| 寸法測定記録 | 検査項目1〜8・測定機・合否・測定印 |
| 工程管理記録 | 工程1〜16・工程担当・作業日・作業時間・良品数・不良数・合否・メモ・印 |
| 内職記録 | 日付・工程名・良品数・不良数・不良内容・氏名(2レコード分) |
| フッター | 重要事項・内装ラベルLOT.NO・完納(回目)・残数・図番・手配番号 |
指定ショット数は =Int([数量]/[取数]+0.99) で算出し、書式「#,##0 ショット」で表示しています。注文数量を1金型あたりの取り数で割った上で切り上げることで、必要なショット回数を外注先にそのまま伝えられる設計です。
2次加硫依頼書印刷ボタン(外製分のみ)
成形後に2次加硫が必要な材料(製品マスタの2次加硫条件が空欄・”なし”以外)を対象に、外注先へ依頼書を発行します。注文書・現品票と同じく仕入先コード≠2(外製分)、手配対象、未発行のデータのみが抽出対象です。
Q31仕入先発注2次加硫依頼書印刷 クエリビルダー
Q31仕入先発注2次加硫依頼書印刷 フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 図番 | T31仕入先発注M | |
| 品名 | T10製品M | |
| 手配番号 | T31仕入先発注M | |
| 設定数量 | T31仕入先発注M | |
| 数量 | T31仕入先発注M | |
| 納期:[納期]-[納期設定] | T31仕入先発注M | |
| 備考 | T31仕入先発注M | |
| 2次加硫条件 | T11製品成形 | Is Not Null And <>”なし” |
| 成形課 | T31仕入先発注M | True |
| 手配 | T31仕入先発注M | True |
| 成形発行 | T31仕入先発注M | False |
| 仕入先コード | T31仕入先発注M | <>2 |
サブマクロ:2次加硫依頼書印刷
- サブマクロのテキスト表示
-
サブマクロ:2次加硫依頼書印刷 If DCount("*","Q31仕入先発注2次加硫依頼書印刷")=0 Then メッセージボックス (印刷するデータがありません, はい, 警告, データなし) マクロの中止 Else 警告音 If MsgBox("2次加硫依頼書をプレビューで確認してから印刷してください。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注2次加硫依頼書印刷, 印刷プレビュー, , , 標準) If MsgBox("2次加硫依頼書を印刷します。よろしいですか?",4+32,"確認")=6 Then レポートを開く (R31仕入先発注2次加硫依頼書印刷, 印刷, , , 標準) メッセージボックス (2次加硫依頼書の印刷が完了しました。, はい, なし, 印刷完了) ウィンドウを閉じる (レポート, R31仕入先発注2次加硫依頼書印刷, 確認) マクロの中止 Else メッセージボックス (印刷を中止しました, はい, なし, 中止) ウィンドウを閉じる (レポート, R31仕入先発注2次加硫依頼書印刷, 確認) マクロの中止 If 文の最後 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 If 文の最後 サブマクロの最後
サブマクロの概要
| 項目 | 内容 |
|---|---|
| データ有無チェック | 対象データが0件なら「印刷するデータがありません」と表示して中止 |
| 印刷プレビュー確認 | プレビューで確認後に印刷確認へ進む2段階の確認フロー(注文書・現品票と同じ構成) |
| 印刷実行 | Yesなら印刷、完了メッセージ後にレポートを閉じる |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 2次加硫書印刷ボタン |
| イベント | クリック時 |
R31仕入先発注2次加硫依頼書印刷 デザインビュー
2次加硫依頼書レポートの構成
| 項目 | 内容 |
|---|---|
| 2次加硫条件 | 製品マスタに設定された条件をそのまま表示 |
| 図番/品名/手配番号 | 基本情報 |
| 生産数量/注文数量 | 設定数量・数量(注文数量は網掛けで参考表示) |
| 納期/備考 | 発注納期と備考 |
| 供給予定時間/出荷予定日 | 非連結(未入力欄)。外注先が実際の作業予定を手書きで記入する欄 |
供給予定時間・出荷予定日は非連結のまま空欄で印刷され、外注先が現場で手書きするための欄になっています。3種の帳票(注文書・現品票・2次加硫依頼書)はいずれも同じ「プレビュー確認→印刷確認」の2段階確認フローで統一されています。
仕入先製品マスタ追加ボタン
図番の登録時に「仕入先製品マスタに存在しません」というエラーが出た場合や、内製品を外製へ切り替えることが決まった場合に、仕入先製品マスタ側のページまで移動せずその場で新規登録できるショートカットボタンです。呼び出しているマクロは仕入先製品マスタの照会画面にある新規登録ボタンと同一のものです。
仕入先製品マスタ「新規登録」の仕組み
仕入先製品マスタの新規登録画面は、製品マスタの図番に対して発注先(仕入先)と担当課を登録する画面です。仕入先の検索と、ロット別単価の登録という2つのポップアップ機能を内包した、やや複雑な構成になっています。 このページでは以下のことを解説[…]
仕入先発注履歴サブフォーム
選択中の仕入先について、過去の発注実績を一覧で確認できるサブフォームです。図番による絞り込みは行わず、その仕入先への発注全体を俯瞰できるようにしています。発注区分の切替に応じて「マスタ発注・シート発注用」と「フォーキャスト発注用」の2つのサブフォームがVisibleで入れ替わります。両サブフォームともに上下同じ位置に配置しています。
仕入先発注履歴サブフォームの配置図(右上)
Q31仕入先発注成形課履歴サブ フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 納期:[納期]-[納期設定] | T31仕入先発注M | |
| 数量 | T31仕入先発注M | |
| 仕入先単価 | T31仕入先発注M | |
| 手配番号 | T31仕入先発注M | |
| ID | T31仕入先発注M | |
| 成形課 | T31仕入先発注M | True |
| 仕入先コード | T31仕入先発注M | [Forms]![F31仕入先発注成形課]![仕入先コード] |
| 図番ID | T31仕入先発注M | |
| 図番 | T31仕入先発注M | |
| 現品票区分 | T31仕入先発注M | “1” |
(並び替え:受注日 降順)
Q31仕入先発注成形課履歴Fサブ フィールド構成
| フィールド | テーブル | 抽出条件 |
|---|---|---|
| 納期:[納期]-[納期設定] | T31仕入先発注M | |
| 数量 | T31仕入先発注M | |
| 仕入先単価 | T31仕入先発注M | |
| 手配番号 | T31仕入先発注M | |
| ID | T31仕入先発注M | |
| 成形課 | T31仕入先発注M | True |
| 仕入先コード | T31仕入先発注M | [Forms]![F31仕入先発注成形課]![仕入先コード] |
| 図番ID | T31仕入先発注M | |
| 図番 | T10製品M | |
| 成形フォーキャスト | T31仕入先発注M | True |
| 現品票区分 | T31仕入先発注M | “1” |
(並び替え:受注日 降順)
仕入先発注履歴サブフォームの適用ボタン
履歴一覧の適用ボタンを押すと、選択した過去の発注内容(図番・仕入先単価)を新規入力欄に転記します。手配番号は履歴の値をそのまま使うのではなく、あらためて自動採番されます。発注区分がマスタ発注の場合のみ、自動手番セクションと同じ「親手番があるか」の確認メッセージが表示され、「はい」なら親手配番号照会ポップアップ(自動手番セクションで解説済みのものと同一フォーム)を開きます。
サブマクロ:適用
- サブマクロのテキスト表示
-
サブマクロ:適用 If [Forms]![F31仕入先発注成形課]![発注区分]=1 Then 値の代入 ([Forms]![F31仕入先発注成形課]![図番], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴サブ]![図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先単価], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴サブ]![仕入先単価]) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], [Forms]![F31仕入先発注成形課]![採番]) 値の代入 ([Forms]![F31仕入先発注成形課]![納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F31仕入先発注成形課]![図番ID]")) 警告音 If MsgBox("親手番があって分割手配の場合は親手番があるなら「はい」無ければ「いいえ」を選択してください",4+32,"確認")=6 Then フォームを開く (F31仕入先発注成形課親手番, フォームビュー, , , , 標準) マクロの中止 Else コントロールの移動 (閉じる) コントロールの移動 (納期) マクロの中止 If 文の最後 If 文の最後 If [Forms]![F31仕入先発注成形課]![発注区分]=2 Then 値の代入 ([Forms]![F31仕入先発注成形課]![図番], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先単価], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![仕入先単価]) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], "F" & [Forms]![F31仕入先発注成形課]![採番]) コントロールの移動 (閉じる) コントロールの移動 (納期) マクロの中止 If 文の最後 サブマクロの最後
サブマクロの概要
| 発注区分 | 処理内容 |
|---|---|
| 1.マスタ発注 | 図番・仕入先単価を履歴から転記。手配番号は新規採番。親手番の有無を確認し、「はい」なら親手配番号照会ポップアップを開く |
| 2.フォーキャスト発注 | 図番・F図番・仕入先単価を履歴Fサブから転記。手配番号は「F」付きで新規採番。親手番確認は行わない |
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課履歴サブ/履歴Fサブ |
| コントロール | 各行の「適用」リンク |
| イベント | クリック時 |
適用F(フォーキャスト発注時の履歴適用ボタン)マクロ
先ほどの適用マクロと処理内容は同じですが、フォーキャスト発注時のサブフォーム側に個別に設置されている適用ボタンのマクロです。
サブマクロ:適用F
- サブマクロのテキスト表示
-
サブマクロ:適用F If [Forms]![F31仕入先発注成形課]![発注区分]=2 Then 値の代入 ([Forms]![F31仕入先発注成形課]![図番], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![F図番], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![図番]) 値の代入 ([Forms]![F31仕入先発注成形課]![仕入先単価], [Forms]![F31仕入先発注成形課]![F31仕入先発注成形課履歴Fサブ]![仕入先単価]) 値の代入 ([Forms]![F31仕入先発注成形課]![手配番号], "F" & [Forms]![F31仕入先発注成形課]![採番]) 値の代入 ([Forms]![F31仕入先発注成形課]![納期設定], DLookUp("納期設定","T10製品M","[図番ID]=[Forms]![F31仕入先発注成形課]![図番ID]")) コントロールの移動 (閉じる) コントロールの移動 (納期) マクロの中止 If 文の最後 サブマクロの最後
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課履歴Fサブ |
| コントロール | 各行の「適用」リンク |
| イベント | クリック時 |
適用親手番マクロ(履歴経由)
先ほどの自動手番セクションで解説した親手配番号照会と同じ仕組みです。選択した受注の手配番号を「手配番号元」へ転記します。
サブマクロ:適用親手番
- サブマクロのテキスト表示
-
サブマクロ:適用親手番 値の代入 アイテム = [Forms]![F31仕入先発注成形課]![手配番号元] 式 = [Forms]![F31仕入先発注成形課親手番]![手配番号] ウィンドウを閉じる (,, 確認) コントロールの移動 コントロール名 納期 マクロの中止 サブマクロの最後
日次更新ボタン(製造指示の確定)
登録中データの内容が固まったら、日次更新ボタンで製造指示を正式に確定させます。1回のクリックで5つのクエリが順に実行され、内製分の材料工程への連携、受注データ側の取り込み済みフラグの更新、在庫出荷データの分納確定、自動採番テーブルのクリーンアップ、成形発行フラグの確定までを一括で処理します。
処理順序
| 順番 | クエリ名 | 役割 |
|---|---|---|
| 1 | Q31仕入先発注成形課ロール数量調整追加 | 内製分をT70ロール数量調整へ追加 |
| 2 | Q31仕入先発注登録更新 | 受注データ(T20受注M)に取り込み済みの印を付ける |
| 3 | Q31仕入先発注成形課本社未予定更新 | 在庫出荷データを分納完了扱いで確定 |
| 4 | Q31仕入先発注成形課日次自動手番更新 | 自動採番テーブルをクリーンアップ |
| 5 | Q31仕入先発注成形課日次更新 | 成形発行フラグをTrueにして製造指示を確定 |
サブマクロ:日次更新
- サブマクロのテキスト表示
-
サブマクロ:日次更新 警告音 If MsgBox("仕入先発注の日次更新を行ってよろしいですか?",4+32,"確認")=6 Then メッセージの設定 (いいえ) クエリを開く (Q31仕入先発注成形課ロール数量調整追加, データシート, 編集) クエリを開く (Q31仕入先発注登録更新, データシート, 編集) クエリを開く (Q31仕入先発注成形課本社未予定更新, データシート, 編集) クエリを開く (Q31仕入先発注成形課日次自動手番更新, データシート, 編集) クエリを開く (Q31仕入先発注成形課日次更新, データシート, 編集) メッセージボックス (日次更新しました, はい, なし, 更新済) 再クエリ () マクロの中止 Else メッセージボックス (処理を中止します, はい, なし, 中止) マクロの中止 If 文の最後 サブマクロの最後
サブマクロの設置場所
| 項目 | 内容 |
|---|---|
| フォーム | F31仕入先発注成形課 |
| コントロール | 日次更新ボタン |
| イベント | クリック時 |
①ロール数量調整への追加
内製分(仕入先コード=2)かつ手配対象のデータのみを対象に、T70ロール数量調整へレコードを追加します。数量に規定歩留まり(1.05倍)を掛けた値を設定数量として初期セットし、後工程で担当者が確定数量へ調整します。
Q31仕入先発注成形課ロール数量調整追加 クエリビルダー
Q31仕入先発注成形課ロール数量調整追加 レコードの追加先フィールド
| 追加先フィールド | 内容 | 抽出条件 |
|---|---|---|
| 手配番号/発注日/図番/納期/備考/取引先コード/図番ID | Q31仕入先発注成形課サブの値をそのまま追加 | |
| 仕入先コード | 同上 | 2(内製のみ) |
| 数量 | 客先注文数 | |
| 設定数量(歩留まり95) | Int([数量]*1.05+0.99) | |
| 手配番号元 | 同上 | |
| 手配 | 同上 | True |
②受注データの取り込み済みフラグ更新
受注管理側のT20受注Mにある「インポート」フラグをTrueに更新し、この受注データがすでに仕入先発注(成形課)側で製造指示化されたことを記録します。まだフラグが立っていない(False)レコードのみが対象です。
Q31仕入先発注登録更新 クエリビルダー
Q31仕入先発注登録更新 更新内容
| フィールド | テーブル | レコードの更新 | 抽出条件 |
|---|---|---|---|
| インポート | T20受注M | True | インポート=False |
③在庫出荷データの分納確定
在庫出荷を選択したデータ(成形課=True・手配=False・成形発行=False・成形フォーキャスト=False)は実際には製造しないため、未製造データの抽出に紛れ込まないよう、この段階で分納完了扱いにして確定させます。予定日を当日、分納回数を1、分納残数を0にセットし、備考の先頭に「在庫出荷」を追記して後から理由が分かるようにしています。
Q31仕入先発注成形課本社未予定更新 クエリビルダー
Q31仕入先発注成形課本社未予定更新 更新内容
| フィールド | レコードの更新 | 抽出条件 |
|---|---|---|
| 備考 | “在庫出荷 ” & [備考] | |
| 予定 | Date() | |
| 分納回数 | 1 | |
| 分納残数 | 0 | |
| 成形課 | True | |
| 手配 | False | |
| 成形発行 | False | |
| 成形フォーキャスト | False |
④自動採番テーブルのクリーンアップ
T31仕入先発注成形自動手番の削除フラグをTrueに更新し、既存の採番済みレコードを一括で使用済み扱いにします。翌日以降の採番が0件からカウントし直される仕組みです。
Q31仕入先発注成形課日次自動手番更新 クエリビルダー
Q31仕入先発注成形課日次自動手番更新 更新内容
| フィールド | テーブル | レコードの更新 | 抽出条件 |
|---|---|---|---|
| 削除フラグ | T31仕入先発注成形自動手番 | True | 削除フラグ=False |
⑤成形発行フラグの確定
最後に、成形課向け・未発行のデータすべてに対して成形発行フラグをTrueにします。これにより登録中データ一覧(成形発行=False条件)から対象レコードが外れ、製造指示が確定した状態になります。
Q31仕入先発注成形課日次更新 クエリビルダー
Q31仕入先発注成形課日次更新 更新内容
| フィールド | テーブル | レコードの更新 | 抽出条件 |
|---|---|---|---|
| 成形発行 | T31仕入先発注M | True | 成形発行=False |
| 成形課 | T31仕入先発注M | True |
まとめ
仕入先発注登録成形課は、受注データを起点に「マスタ発注・フォーキャスト発注・シート発注」の3パターンで製造指示を確定させる、成形課カテゴリーの中核ページです。発注区分ごとにVisible切替される画面構成、課別に独立した自動採番テーブル、手配/在庫出荷の排他トグル、外製先向けの3種の帳票発行、そして内製分をロール数量調整へ橋渡しする日次更新まで、一連の流れが1つのフォームに集約されています。
外製・内製を問わず、同じ登録画面から製造指示を出しつつも、印刷対象や数量訂正の可否を仕入先コード(自社工場か外注先か)で明確に切り分けている点が、このページ全体を貫く設計思想です。
本サイトではマクロを用いた構築手順を中心に紹介していますが、決してマクロを唯一の正解として推奨しているわけではありません。VBAが扱える環境であれば、より多彩で柔軟なプログラムが組めるVBAでの構築をむしろ推奨したいと考えています。
ここでマクロという選択肢を提示しているのは、VBAにハードルを感じている方への「もう一つの入り口」として、また将来的な後継者への引き継ぎ負荷を抑えるという実務上のメリットを考慮してのことです。設計の考え方の一つとして、状況に合わせて活用してください。