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

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



2006/11/28配信
 

第8コース  第7回 「得意先マスタの作成」




 

 ■メニュー

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

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


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


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