■メニュー
1.売上入力の作成(3回目)
===================================================================
こんにちは、ティウェアの高橋です。
売上入力の作成の3回目です。
では、はじめましょう。
------------------------------------------------------------------
今回は、FormのLoadを取り上げます。
Set cn = Application.CurrentProject.Connection
cn.CursorLocation = adUseClient
◎ポイント解説 1 -----*-----*-----*-----
If コントロール_読む = False Then
DoCmd.Close
DoCmd.OpenForm "m_日次処理メニュー"
Exit Sub
End If
◎ポイント解説 2 -----*-----*-----*-----
If 会社マスタ_読む = False Then
DoCmd.Close
DoCmd.OpenForm "m_日次処理メニュー"
Exit Sub
End If
p_eigyocd = Int(0)
◎ポイント解説 3 -----*-----*-----*-----
From_Clr
Forms(cFormName_M)![btn取消].Enabled = False
Forms(cFormName_M)![伝票区分] = Int(1)
tDate = 0
◎ポイント解説 4 -----*-----*-----*-----
区分名_画面表示
'納品書備考
t_nouhinmes = ""
------------------------------------------------------------------
では、説明します。
1.◎ポイント解説 1 について
コントロール_読むは、コントロールマスタを読み込む処理です。
コントロールマスタが、存在するかを調べます。
なければ、抜け出します。
1-1.消費税の商品コードを退避します。
商品マスタに消費税を持たせます。
一番大きな数字オール9が良いと思います。
なぜ、商品マスタに持たせるのか?
例えば、得意先別集計表、商品別集計表を作るとしましょう。
その場合、1日でも1ヶ月でもよいのですが、集計すると
得意先別集計表、商品別集計表の金額が違ってきます。
何かが、足りません。
何?
消費税の額だけ足らなくなるのです。
そこで、商品として消費税を登録するわけです。
これで、どの帳票をみても同じ。
商品コードをオール9にするのは、商品でないから最後に
印刷させるわけです。
1-2.消費税率を退避する。
1-3.消費税は、変わるので日付と税率を退避する。
1-4.商品マスタ読むから消費税を読み込む
Function コントロール_読む()
コントロール_読む = True
Set rs1 = New ADODB.Recordset
rs1.Open "コントロールマスタ", cn, adOpenDynamic, adLockOptimistic
If rs1.BOF Then
MsgBox "コントロールマスタが登録されていません。 _
処理を終了して下さい。", vbCritical, "警告"
rs1.Close
Set rs1 = Nothing
コントロール_読む = False
Exit Function
Else
商品CD消費税 = rs1![消費税商品コード]
zei = rs1![消費税]
If IsNull(rs1![新消費税開始日付]) Or Trim(rs1![新消費税開始日付]) _
& "" = "" Then
消費税_ymd = 0
Else
消費税_ymd = rs1![新消費税開始日付]
End If
szei = rs1![新消費税]
'売上伝票発行(0:無し,1:有り)
denp_sakou = rs1![売上伝票発行]
End If
rs1.Close
Set rs1 = Nothing
'商品マスタ読む(消費税)
商品名消費税 = ""
規格消費税 = ""
Set cm1 = New ADODB.Command
Set rs1 = New ADODB.Recordset
Set pm1 = New ADODB.Parameter
pm1.Direction = adParamInput
pm1.Type = adInteger
pm1.Value = 商品CD消費税
With cm1
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "sp_商品マスタ_get"
.Parameters.Append pm1
End With
Set rs1 = cm1.Execute
If rs1.EOF Then
MsgBox "消費税商品コードが登録されていません。 _
処理を終了して下さい。", vbCritical, "警告"
コントロール_読む = False
rs1.Close
Set rs1 = Nothing
Set pm1 = Nothing
Set cm1 = Nothing
Exit Function
Else
商品名消費税 = rs1![商品名]
End If
rs1.Close
Set rs1 = Nothing
Set pm1 = Nothing
Set cm1 = Nothing
End Function
------------------------------------------------------------------
1.◎ポイント解説 2 について
会社マスタ_読むは、会社マスタを読み込む処理です。
これは、納品書を発行するときに使います。
会社名、住所など印刷しないといけません。
Function 会社マスタ_読む()
会社マスタ_読む = True
'会社マスタ読み込み開始
Set cm1 = New ADODB.Command
Set rs1 = New ADODB.Recordset
Set pm1 = New ADODB.Parameter
pm1.Direction = adParamInput
pm1.Type = adInteger
pm1.Value = 1
With cm1
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "sp_会社マスタ_get"
.Parameters.Append pm1
End With
Set rs1 = cm1.Execute
If rs1.EOF Then
[text会社名] = ""
[text郵便番号] = ""
[text住所1] = ""
[text住所2] = ""
[text電話番号] = ""
[textFAX番号] = ""
[text振込先1] = ""
[text振込先2] = ""
[text振込先3] = ""
MsgBox "会社マスタが登録されていません。処理を終了して下さい。_
", vbCritical, cFormName_M & " 警告"
rs1.Close
Set rs1 = Nothing
Set pm1 = Nothing
Set cm1 = Nothing
会社マスタ_読む = False
Exit Function
Else
[text会社名] = rs1![会社名]
[text郵便番号] = rs1![郵便番号]
[text住所1] = rs1![住所1]
[text住所2] = rs1![住所2]
[text電話番号] = rs1![電話番号]
[textFAX番号] = rs1![FAX番号]
[text振込先1] = rs1![振込先1]
[text振込先2] = rs1![振込先2]
[text振込先3] = rs1![振込先3]
End If
rs1.Close
Set rs1 = Nothing
Set pm1 = Nothing
Set cm1 = Nothing
End Function
長くなるので、今回はここまでとします。
今回のポイントは、どの帳票をある一定期間で区切って印刷する場合
どれを見ても同じ金額でないといけないということです。
次回も売上入力です。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|