前回は、以下の説明をしました。
1.営業所マスタの概要
2.営業所マスタのレイアウト
3.フォーム名、項目名の作成
4.form → load
5.form → Unload
6.form → KeyDown
今回は、登録ボタンの説明をします。
営業所マスタの作成、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_eigyocd = 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 '白色
この処理は営業所コード(テキスト)の入力が出来る状態にします。
営業所コードを入力して存在すれば、取消ボタンを押さない限り
入力できないようにしていますのでここで解除しています。
処理が終わればカーソルを営業所コードにフォーカスをあてます。
-*-------*-------*-------*-------*-------*-------*-------*-------*-
それでは、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
'◎ポイント解説 6 -----*-----*-----*-----
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,
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
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,
@カナ名 varchar (40),
@営業所名 varchar (40),
@郵便番号 varchar (10),
@住所1 varchar (60),
@住所2 varchar (60),
@電話番号 varchar (16),
@FAX番号 varchar (16)
)
As
insert into 営業所マスタ (営業所コード,カナ名,営業所名,郵便番号,
住所1,住所2,電話番号,FAX番号)
values (@営業所コード,@カナ名,@営業所名,@郵便番号,
@住所1,@住所2,_@電話番号,@FAX番号)
return
営業所マスタのレイアウト
1.営業所コード int 2
(主キー)
2.カナ名 nvarchar 40
3.営業所 nvarchar 40
4.郵便番号 nvarchar 10
5.住所1 nvarchar 60
6.住所2 nvarchar 60
7.電話番号 nvarchar 16
8.FAX番号 nvarchar 16
数字は桁数を入れませんが、文字に関しては桁数を
ストアドプロシージャに入れてください。
insert into 営業所マスタ (項目1、項目2・・・)
values (項目a、項目b・・・)
項目同士がお互いに合っていれば順番はどうでも構いません。
項目1と項目a、項目2と項目b、・・・
1-6.◎ポイント解説 5 について
営業所マスタの変更の処理となります。
営業所_更新(upd_mode As Integer)のupd_modeには、1が
入っています。
"sp_営業所マスタ_upd"のストアドプロシージャを実行します。
ALTER Procedure sp_営業所マスタ_upd
(
@営業所コード int,
@カナ名 varchar (40),
@営業所名 varchar (40),
@郵便番号 varchar (10),
@住所1 varchar (60),
@住所2 varchar (60),
@電話番号 varchar (16),
@FAX番号 varchar (16)
)
As
update 営業所マスタ
set
営業所コード=@営業所コード,カナ名=@カナ名,営業所名=@営業所名,郵便番号=@郵便番号,住所1=@住所1,住所2=@住所2,電話番号=@電話番号,FAX番号=@FAX番号
where 営業所コード=@営業所コード
return
ここも項目同士がお互いに合っていれば順番はどうでも構いません
update 営業所マスタ
set 項目1=項目a,項目2=項目b,・・・
ポイントは、where 営業所コード=@営業所コードです。
営業所コードを渡さなければ、書き直しはできませんので
注意して下さい。
1-7.◎ポイント解説 6 について
営業所コードとカナ名で説明します。
営業所コードについて
int型はadIntegerになります。数字タイプなのでadParamInput
の後にある , ,には何も入れません。
つまり、桁数には何も入れる必要がないのです。
Set pm = .CreateParameter(, adInteger, adParamInput,
, _
[営業所コード])
.Parameters.Append pm
カナ名について
varchar型はadVarCharになります。文字タイプなので ,40,が入ります
(カナ名が40ですから)
Set pm = .CreateParameter(, adVarChar, adParamInput,
40, _
[カナ名])
.Parameters.Append pm
次回も、営業所マスタの作成です。
残りのボタン処理を説明します。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
教育は学習内容の質で向上します、Accessもどこで学ぶかで向上します
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|