■メニュー
1.得意先マスタの作成(2回目)
===================================================================
こんにちは、ティウェアの高橋です。
それでは、得意先マスタの作成の2回目をはじめましょう。
早速、開始します。
-------------------------------------------------------------------
1.登録ボタンの処理
登録ボタンを押すことにより、得意先マスタに書き込みを行います。
1-1.btn登録_Click()について
'◎ポイント解説 1 -----*-----*-----*-----
If inttouroku = 1 Then
If MsgBox("登録しますか", (vbYesNo + vbDefaultButton2 + _
vbInformation), "登録") = vbYes Then
Else
DoCmd.GoToControl "得意先名"
Exit Sub
End If
End If
'◎ポイント解説 2 -----*-----*-----*-----
Select Case syorimode
Case 0 '登録
intRet = 得意先_更新(0)
Case 1 '変更、削除
intRet = 得意先_更新(1)
End Select
p_tancd = Int(0)
From_Clr
'◎ポイント解説 3 -----*-----*-----*-----
[得意先コード].Enabled = True
[得意先コード].Locked = False
[得意先コード].BackColor = 16777215 '白色
[得意先コード].SetFocus
-------------------------------------------------------------------
では、解説します。
1-2.◎ポイント解説 1 について
登録ボタンを押して書き込む前にコンボボックスを表示します。
再度、確認させます。
これは、間違ってボタンを押しても回避できるようにするためです。
1-3.◎ポイント解説 2 について
ここから、メイン処理です。
syorimodeが0の場合は、登録処理をさせます。
1の場合は、変更処理をします。
1-4.◎ポイント解説 3 について
[得意先コード].Enabled = True
[得意先コード].Locked = False
[得意先コード].BackColor = 16777215 '白色
この処理は得意先コード(テキスト)の入力が出来る状態にします。
得意先コードを入力して存在すれば、取消ボタンを押さない限り
入力できないようにしていますのでここで解除しています。
処理が終わればカーソルを得意先コードにフォーカスをあてます。
フォーカスをあてるのは、入力できる状態にするという事です。
登録ボタンを押せば登録処理が終わります。
次は、また得意先を入力することになります。
だから、マウスでを得意先コードにわざわざセットしなくて
済むようにカーソルを自動で移動させてやります。
それを行うのが、SetFocusです。
-*-------*-------*-------*-------*-------*-------*-------*-------*-
それでは、intRet = 得意先_更新(0)を解説します。
Function 得意先_更新(upd_mode As Integer)を作成して下さい。
得意先_更新 = True
On Error GoTo 得意先_更新_err
Set cm = New ADODB.Command
Set pm = New ADODB.Parameter
With cm
.ActiveConnection = cn
.CommandType = adCmdStoredProc
If upd_mode = 0 Then
'◎ポイント解説 4 -----*-----*-----*-----
.CommandText = "sp_得意先マスタ_ins"
Else
'◎ポイント解説 5 -----*-----*-----*-----
.CommandText = "sp_得意先マスタ_upd"
End If
Set pm = .CreateParameter(, adInteger, adParamInput, , _
[営業所コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adInteger, adParamInput, , _
[得意先コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 40, _
[得意先名])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 40, _
[カナ名])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 10, _
[略名])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 10, _
[郵便番号])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 60, _
[住所1])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 60, _
[住所2])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 16, _
[電話番号])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 16, _
[FAX番号])
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
[締日])
.Parameters.Append pm
Set pm = .CreateParameter(, adInteger, adParamInput, , _
[担当者コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adInteger, adParamInput, , _
[請求先営業所コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adInteger, adParamInput, , _
[請求先得意先コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
zeikbn) '消費税計算法
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
kakekbn) '掛区分
.Parameters.Append pm
End With
cm.Execute
Set pm = Nothing
Set cm = Nothing
Exit Function
得意先_更新_err:
For Each ado_err In cn.Errors
MsgBox "エラーナンバー " & ado_err.Number & _
vbCrLf & _
"エラーソース " & ado_err.Source & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
Next
得意先_更新 = False
Set pm = Nothing
Set cm = Nothing
-------------------------------------------------------------------
では、解説です。
1-5.◎ポイント解説 4 について
得意先マスタの新規登録の処理となります。
得意先_更新(upd_mode As Integer)のupd_modeには、0が入っています。
"sp_得意先マスタ_ins"のストアドプロシージャを実行します。
ALTER Procedure sp_得意先マスタ_ins
(
@営業所コード int,
@得意先コード int,
@得意先名 varchar (40),
@カナ名 varchar (40),
@略名 varchar (10),
@郵便番号 varchar (10),
@住所1 varchar (60),
@住所2 varchar (60),
@電話番号 varchar (16),
@FAX番号 varchar (16),
@締日 smallint,
@担当者コード int,
@請求先営業所コード int,
@請求先得意先コード int,
@消費税計算法 smallint,
@掛区分 smallint
)
As
insert into 得意先マスタ (営業所コード,得意先コード,得意先名,
カナ名,略名,郵便番号,住所1,住所2,電話番号,FAX番号,
締日,担当者コード,請求先営業所コード,請求先得意先コード,
消費税計算法,掛区分)
values (@営業所コード,@得意先コード,@得意先名,@カナ名,@略名,
@郵便番号,@住所1,@住所2,@電話番号,@FAX番号,@締日,
@担当者コード,@請求先営業所コード,@請求先得意先コード,
@消費税計算法,@掛区分)
return
insert into 得意先マスタ (項目1、項目2・・・)
values (項目a、項目b・・・)
項目同士が合っていれば、順番はどうでも構いません。
でも、お互いの項目は合っていないといけません。
項目1と項目aは同じ、そして項目2と項目bも同じと言うように。
1-6.◎ポイント解説 5 について
得意先マスタの変更の処理となります。
得意先_更新(upd_mode As Integer)のupd_modeには、1が入っています。
"sp_得意先マスタ_upd"のストアドプロシージャを実行します。
マスタはいくつか作ってきましたので、ここは自分で
作ってみて下さい。
そんなに難しいものではありませんよ。
次回も、得意先マスタの作成となります。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|