■メニュー
1.得意先マスタの作成(3回目)
===================================================================
こんにちは、ティウェアの高橋です。
ブログをはじめました。
「今頃、ブログですか?」と聞こえてきそうです(笑)
興味があれば見てください。
まぐまぐで”access”で検索すると定期的に発行しているのは
”実践テク”を含めて3誌ぐらいになんですか?
たくさんあったのに、さびしい限りです。
現在、隔週で発行していますが、毎週火曜日に変更します。
12月は、試験的に行います。
何事も挑戦してみないと、前進しません!
メルマガのボリュームは半分ぐらいになると思ってください。
私の体力が続けば、引き続き週間で発行するつもりです。
メルマガ、ブログ、ホームページとすることが多くなりました。
システムを開発しているすき間を見つけて書きます。
それでは、得意先マスタの作成の3回目をはじめましょう。
では、開始します。
-------------------------------------------------------------------
1.削除ボタンの処理
削除ボタンを押すことにより、得意先マスタを削除します。
1-1.btn削除_Click()について
'◎ポイント解説 1 -----*-----*-----*-----
If intsakujyo = 1 Then
If MsgBox("データを削除しますか", (vbYesNo + vbDefaultButton2 + _
vbInformation), "削除") = vbYes Then
Else
DoCmd.GoToControl "得意先名"
Exit Sub
End If
End If
'◎ポイント解説 2 -----*-----*-----*-----
intRet = 得意先_削除()
p_tancd = Int(0)
From_Clr
'◎ポイント解説 3 -----*-----*-----*-----
[得意先コード].Enabled = True
[得意先コード].Locked = False
[得意先コード].BackColor = 16777215 '白色
[得意先コード].SetFocus
-------------------------------------------------------------------
では、詳しく解説します。
1-1.◎ポイント解説 1 について
削除ボタンを押して削除する前にコンボボックスを表示させて
再度、削除してもよいのか確認させます。
登録、削除、変更など重要な箇所にはコンボボックスを表示させて
確認を促しましょう。
1-2.◎ポイント解説 2 について
ここが削除処理のメインとなります
intRet = 得意先_削除()
1-3.◎ポイント解説 3 について
[得意先コード].Enabled = True
[得意先コード].Locked = False
[得意先コード].BackColor = 16777215 '白色
得意先コード(テキスト)の入力が出来る状態にします。
得意先コードを入力して存在すれば、取消ボタンを押さない限り
入力できないようにしていますのでここで解除しています。
これは、キーとなる得意先コードを勝手に入力できないように
しているためです。
得意先コードを間違えた場合は、取消ボタンで再度入力して
処理させればよいのです。
処理が終わればカーソルを得意先コードにフォーカスをあてます。
-*-------*-------*-------*-------*-------*-------*-------*-------*-
それでは、intRet = 得意先_削除()を解説します。
Function 得意先_削除()を作成して下さい。
内容は下記のとおりです。
得意先_削除 = True
On Error GoTo 得意先_削除_err
Set cm = New ADODB.Command
Set pm = New ADODB.Parameter
pm.Direction = adParamInput
pm.Type = adInteger
pm.Value = [得意先コード]
With cm
.ActiveConnection = cn
.CommandType = adCmdStoredProc
'◎ポイント解説 4 -----*-----*-----*-----
.CommandText = "sp_得意先マスタ_del"
.Parameters.Append pm
End With
cm.Execute
Set pm = Nothing
Set cm = Nothing
Exit Function
得意先_削除_err:
'◎ポイント解説 5 -----*-----*-----*-----
For Each ado_err In cn.Errors
If ado_err.Number = -2147217873 Then
MsgBox "このコードは他のデータで使用されているので_
削除できません。", vbCritical, "警告"
GoTo 得意先_削除_err99
Else
MsgBox "エラーナンバー " & ado_err.Number & _
vbCrLf & _
"エラーソース " & ado_err.Source & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
End If
Next
得意先_削除_err99:
得意先_削除 = False
Set pm = Nothing
Set cm = Nothing
-------------------------------------------------------------------
では、説明します。
1-4.◎ポイント解説 4 について
得意先マスタの削除の処理となります。
"sp_得意先マスタ_del"のストアドプロシージャを実行します。
ALTER Procedure sp_得意先マスタ_del
(
@得意先コード int
)
As
delete 得意先マスタ
where 得意先コード = @得意先コード
return
削除する場合には、必ずコードをして下さい。
ここでは、where 得意先コード = @得意先コードとなります。
何度も書いていますが、whereがないと得意先マスタの全ての
データがクリアされますので十分注意してください。
1-5.◎ポイント解説 5 について
ado_err.Numberが”-2147217900”の場合リレーションの関係エラーとなります
リレーションの関係ができていることが前提です。
警告のMsgBoxを表示させて注意を促します。
MsgBox "このコードは他のデータで使用されているので_
削除できません。", vbCritical, "警告"
次回も、得意先マスタの作成となります。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|