データベース千夜一夜第16回

プログラミングとSQL(4)
~販売データの入力処理(前編)
長谷川裕行
有限会社 手國堂

データの準備

まず、宣言セクションでSqlServer用のデータ・オブジェクトを使用できるよう“System.Data.SqlClient”を取り込んでおきます。

 Imports System.Data.SqlClient

次に、2つの構造体(ユーザー定義型)を定義しておきます。


- 顧客情報の構造体 -

ユーザーの入力したお客様IDから取得された、顧客の氏名や住所などを保持する構造体です。

各メンバはテーブル「顧客_mr」のフィールドと対応します。今回のサンプルでは一時的なテーブル「売上ヘッダ」に日付とお客様IDを記録するだけなので、この構造体の保持する氏名や住所は利用しません。

Structure strucMemberInfo
 Dim strDate As String -------- 伝票日付(処理日付)
 Dim strName As String -------- 顧客の氏名
 Dim strZip As String --------- 郵便番号
 Dim strAddr1 As String ------- 住所1
 Dim strAddr2 As String ------- 住所2
 Dim strPhone As String ------- 電話番号
End Structure


- 売上伝票1件分の構造体 -

顧客が注文した商品1件分の情報を保持する構造体です。

各メンバはテーブル「売上明細」の各フィールドに対応します。この構造体は、次回紹介する販売情報の入力処理で利用します。

Structure strucSlipData
 Dim strItemName As String -------- 品名
 Dim intItemValue As Integer ------ 販売単価
 Dim intNumItems As Integer ------- 数量
 Dim lngTotalValue As Long -------- 合計(単価×数量)
End Structure


- グローバル変数の宣言 -

先に定義した構造体の型を持つグローバル変数を宣言します。これらは、モジュール内の複数のプロシージャから参照されます。

 Dim Customer As strucMemberInfo ---- 顧客情報を保持
 Dim SlipData As strucSlipData ------ 売上伝票1件分を保持

伝票番号は「売上ヘッダ」の1件のレコード(日付と顧客情報)と「売上明細」の複数のレコード(1件の売上ヘッダに対応する、複数の商品の売上情報)をつなぐ重要なデータです。これもグローバル変数として、複数のプロシージャから参照できるようにしておきます。

 Dim strSlipNumber As String ---- 伝票番号(文字列)を保持



トップページ
全体の仕様を把握する
フォームのデザイン
データの準備
顧客情報の構造体
売上伝票1件分の構造体
グローバル変数の宣言
下請け処理~コントロールと変数の初期化
伝票番号の生成
顧客情報と伝票番号の表示
レコードの追加~AddHeader
あとがき
Copyright © MESCIUS inc. All rights reserved.