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

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



2005/08/16配信
 

第5コース  第7回 「営業所マスタの作成」




 

 営業所マスタの作成、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_eigyocd = 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 = -2147217900 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 営業所コード = @営業所コードとなります。


 1-5.◎ポイント解説 5 について

  ado_err.Numberが”-2147217900”の場合リレーションの関係エラー
    となります。

  リレーションの関係ができていることが前提です。
  警告のMsgBoxを表示させて注意を促します。

    MsgBox "このコードは他のデータで使用されているので_
    削除できません。", vbCritical, "警告"


  リレーションを作成することは、データの整合性を保つためです。
  営業所マスタは各データの要となります。

  簡単にデータを削除されると各帳票を印刷した場合に
  金額が合わないとか、件数が合わないなどの不具合が発生します。

  それを起こさないようにするには、どうすればよいのか?

  データベースダイアグラムで関係を作ればそれができます。

  営業所マスタに関係したリレーションがすべてなくなれば
  営業所マスタにあるコードが削除できるということになります。

  データベースダイアグラムで主要なファイルにはリレーションを
  作成しておきましょう。

-------------------------------------------------------------------

 2.取消ボタンの処理

   取消ボタンを押すことにより、営業所マスタの処理を中止します。

   2-1.btn取消_Click()について   

p_eigyocd = Int(0)

From_Clr

Me![営業所コード].SetFocus

  取消の処理は初期の状態に戻します。
  From_Clrで各項目を空白等にします。
  処理を終了して営業所コードにフォーカスをあてます。

-------------------------------------------------------------------

 3.終了ボタンの処理

   営業所マスタの処理を終了してマスタメンテナンス処理メニュー
   に移動させます。

   3-1.btn終了_Click()について   


If IsNull([営業所コード]) Or Trim([営業所コード]) & "" = "" Then
DoCmd.Close
DoCmd.OpenForm "m_マスタメンテナンス処理メニュー" ' 3-1

Exit Sub
End If

On Error GoTo Err_btn終了_Click

DoCmd.Close

DoCmd.OpenForm "m_マスタメンテナンス処理メニュー" ' 3-2

Exit_btn終了_Click:
Exit Sub

Err_btn終了_Click:
MsgBox "エラーナンバー " & Err.Number & _
vbCrLf & _
Err.Description, vbCritical, "エラー"

Resume Exit_btn終了_Click


 *注意

 3-1と3-2の”マスタメンテナンス”の部分を半角にしてください。
 メルマガでは全角でないとエラーになりますのでこのような記述に
 しています。

-------------------------------------------------------------------

 4.From_Clrの処理

   営業所マスタの画面項目をクリアします。
   登録、削除、取消の処理で使用されています。

 Sub From_Clr()を作成して下さい。


[営業所コード].Enabled = True
[営業所コード].Locked = False
[営業所コード].BackColor = 16777215 '白色

[営業所名].Enabled = False
[カナ名].Enabled = False
[郵便番号].Enabled = False
[住所1].Enabled = False
[住所2].Enabled = False
[電話番号].Enabled = False
[FAX番号].Enabled = False

If p_eigyocd = Int(0) Then
[営業所コード] = ""
Else
[営業所コード] = p_eigyocd
p_eigyocd = Int(0)
End If

[営業所名] = ""
[カナ名] = ""
[郵便番号] = ""
[住所1] = ""
[住所2] = ""
[電話番号] = ""
[FAX番号] = ""


 営業所コードを入力できる状態にします。
 各項目に初期値を送っています。


 次回も、営業所マスタの作成です。
 各項目の処理を説明します。

===================================================================

                ◆ 実践テクニック、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.