次のセクションでは、注文フォームを使用する方法と、注文フォームをプログラムする方法を示します。 Northwind 2.0 Starter Edition データベースで簡単に調べることができるように、オブジェクト名が用意されています。
次の情報は、フォームの使用に関する重要なポイントをまとめたものです。
-
メイン メニュー (frmMainMenu) には、注文の一覧、いくつかのフィルター オプション、および各注文を開くハイパーリンクがあります。
-
[ 注文の追加] ボタンをクリックして、新しい空の注文を開きます。
-
注文の詳細フォーム (frmOrderDetails) で、ドロップダウンから既存の顧客を選択します。 その時点で、[従業員名] と [ 新しい 状態] が選択されます。 注文日も既に入力されています。 現時点では、[出荷日] と [支払日] は空白のままにします。
-
新しい顧客の注文を追加するには、注文の詳細フォーム (frmOrderDetails) を開く前に Customer レコードを作成します。
-
注文に品目を追加するには、この注文の製品を選択し、「数量」と入力します。 単価が入力され、Price は式によって計算されます。
-
[注文の状態] を進め、[新規] からワークフローを通じて注文を移動します (>[請求書 > > 発送済み] —> [クローズ済み] から注文を移動するには、注文の詳細フォームの上部にあるボタン (frmOrderDetails) を使用します。
-
未承認の注文は、[ 注文の削除 ] ボタンを使用して削除できます。
-
Northwind 2.0 Starter Edition の注文プロセスは、設計上簡単です。 前提は、常に利用可能なインベントリがあり、不足せず、購入する必要がないということです。 より現実的なプロセスでは、これらの一般的な問題が処理されます。
次の情報は、フォームの開発方法に関する重要なポイントをまとめたものです。
-
注文の詳細フォーム (frmOrderDetails) は、フォームの RecordSource プロパティで指定された単純なクエリ (qryOrder) からデータを取得します。 1 つのテーブル クエリにデータ入力フォームを基にすることをお勧めします。 このクエリに OrderDetails テーブルを含める必要はありません。
-
さまざまな ID フィールドは、非表示の ID 列と表示される Description 列という 2 列のコンボ ボックスから値を取得します。 これらのコンボ ボックスは、 RowSource プロパティで指定された 2 列クエリにバインドされます。
-
サブフォーム sfrmOrderDetails は、1 つのテーブル クエリにバインドされます。 ProductID ドロップダウンは、他の ID ドロップダウンと同様に機能します。 サブフォームの行は、サブフォーム コントロールの LinkMasterFields プロパティと LinkChildFields プロパティを設定することで、現在の順序に制限されます。
-
このフォームには、新しいレコードの作成時に実行される BeforeInsert マクロも含まれており、Employee と Status を設定します。 通常、これは顧客を選択するときに発生します。 TempVars!UserID は、frmLogin フォームからキャプチャされたログイン ユーザーの UserID を保持します。 これらのマクロは、ナビゲーション ウィンドウの [マクロ] セクションではなく、[プロパティ] ウィンドウの [イベント] タブにあります。
-
このフォームの AfterInsert イベントには、新しいレコードが保存されたときに実行されるマクロがあります。 次に、メイン メニューの左側のナビゲーション ウィンドウの数が更新されます。