■メニュー
1.売上入力の作成(11回目)
===================================================================
こんにちは、ティウェアの高橋です。
売上入力の作成の11回目です。
では、はじめましょう。
------------------------------------------------------------------
メルマガNo.119の解説です。
1.◎ポイント解説 8 について
得意先明細問い合せからの戻り処理となります。
p_denfukuが1は、伝票複写となりますから素通りさせて伝票を画面に表示します。
p_denfukuが0とは、伝票修正をすることになります。
伝票修正の処理は下記のとおりです。
締次フラグが0の場合、締次処理(請求書処理)がされていないとなります。
0以外は、締次処理がされたとなります。
ここでは、締次フラグが0以外は、伝票処理ができないと画面表示させます。
なぜ、修正させないのか?
請求残高が合わなくなるからです。
この販売管理ソフトでは、一度確定した伝票、残高は修正が不可能です。
もし、伝票の打ち間違いがあった場合は、赤伝票を発行して調整します。
これで、その伝票も請求書に印刷され記録として残ります。
2.◎ポイント解説 9 について
ここは、月次処理となります。
ポイント解説 8と同じです。
締次フラグが月次フラグになっただけとなりますので省略します。
3.◎ポイント解説 10と11 について
ポイント解説 2にdenflg = 0とdenflg = 1のif文があります。
denflg = 1の場合、伝票番号手打ち(変更をしようとしている)
denflg = 0の場合、伝票番号空打ち(登録をしようとしている)
オペレータは何をしようとしているのかを判断して処理モードが何で
あるのかを確認しています。
syorimode=0は、登録 syorimode=1は、変更となります。
この販売管理ソフトは、登録ボタン、変更ボタン、削除ボタンを押して
伝票番号を入力して処理するという手法はしていません。
これをしないのは、オペレータに無駄な手間をかけさせないためです。
伝票番号でオペレータがどんな処理をしたのか、それと現在の処理モードが
どうなのかで判断しています。
これで、ここのif分の意味はわかると思います。
4.◎ポイント解説 12と13 について
得意先明細問い合せから伝票複写をする場合の処理となります。
登録モードですからsyorimode = 0にします。
新規登録ですから、コントロールマスタから売上伝票番号を+1して伝票番号に
送ります。
フラグ関係は、すべてゼロにします。
5.◎ポイント解説 14 について
担当者コード、営業所コード、得意先コードからそれぞれの画面項目に送ります。
担当者_読む、営業所_読む、得意先_読むがあります。
同じような処理ですので担当者_読むだけ記述します。
sp_担当者マスタ_getは、マスタメンテナンスでも解説していますので省略します。
Function 担当者_読む()
担当者_読む = True
If IsNull(Forms(cFormName_M)![担当者コード]) Or Trim(Forms(cFormName_M)! _
[担当者コード]) & "" = "" Then
担当者_読む = False
Exit Function
End If
Set cm1 = New ADODB.Command
Set rs1 = New ADODB.Recordset
Set pm1 = New ADODB.Parameter
pm1.Direction = adParamInput
pm1.Type = adInteger
pm1.Value = Forms(cFormName_M)![担当者コード]
With cm1
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = "sp_担当者マスタ_get"
.Parameters.Append pm1
End With
Set rs1 = cm1.Execute
If rs1.EOF Then
Forms(cFormName_M)![担当者名] = ""
担当者_読む = False
Else
Forms(cFormName_M)![担当者名] = rs1![担当者名]
End If
rs1.Close
Set rs1 = Nothing
Set pm1 = Nothing
Set cm1 = Nothing
End Function
5.◎ポイント解説 15 について
売上伝票発行についてです。
コントロールマスタにある売上伝票発行がどうなっているのかで判断します。
売上伝票発行がありに設定されている場合、名称マスタの納品書備考に
あらかじめ登録していれば、画面上に表示させます。
例えば、「新米、大分コシヒカリが入荷しました。」とか
「先着20名様、大分コシヒカリ1割引き」などを登録したものをコンボボックス
に表示させ選択して納品書に印刷させるわけです。
単純に印刷させて配送するよりも、納品書でもセールスをすることも
重要ではないでしょうか。
名称マスタ_読む_納品書備考は、下記のとおりです。
Sub 名称マスタ_読む_納品書備考()
Me![納品書備考] = ""
SqlStr = ""
SqlStr = "SELECT 名称マスタ.名称名, 名称マスタ.名称コード "
SqlStr = SqlStr & " FROM 名称マスタ "
SqlStr = SqlStr & " where 名称マスタ.名称区分コード = 5 "
SqlStr = SqlStr & " order by 名称マスタ.名称コード "
Me![納品書備考].RowSource = SqlStr
End Sub
最後は、次の項目へ移動させます。
伝票年].SetFocusとなります。
やっと伝票番号のLostFocusが終わりました。
伝票番号の処理はこれで終わりです。
次回も売上入力です。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|