Access(ADP & VBA)とMSDEで作るクライアントサーバーシステム(c/s)

 
実践テクニック、Accessで作るクラサバシステム



2008/01/22配信
 

第12コース  第1回 「売上入力の作成」




 

 ■メニュー

   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年以上の開発ノウハウを惜しみなく完全公開!

Mail:  (半角英数字)     Powered byまぐまぐ


HOME / お客様の声 / メルマガ / 販売管理ソフト教材 / 会社概要/ 特定商取引法/ お申し込み
 お問い合わせ / メルマガのご意見ご感想 / メルマガのバックナンバー/ プライバシーポリシー
 


 Copyright (c) 2001 ティウェア All rights reserved.