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

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



2005/02/01配信
 

第4コース  第7回 「会社マスタの作成」




 

前回に続き会社マスタメンテナンスの作成をします。

基本的な流れは以前説明した”コントロールマスタの作成”と同じです。

では、始めましょう。

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

1.登録ボタンを押すことにより、会社マスタの登録処理を行います。

 1−1.具体的な流れ

   このマスタは売上伝票、納品書、請求書に会社名、住所等を
   記述するためのものです。
   
   それで削除の処理はありません。

   読み込んだ時のsyorimodeにより、登録処理なのか変更処理なのか
   判断しています。
   登録時にエラーが発生エラーナンバーを知らせます。
       会社は1レコードしか存在しません。
   正常終了すれば、マスタメンテナンスのメニューに戻ります。

   '登録確認(有り)の処理は、ボタンを押した時、実行するか
   しないかをMsgBoxで表示させています。
   これはあるマスタに各ボタンに対して確認画面を表示させるか
   しないかを保存させているのです。
   inttouroku = 1は表示させるということです。

   では、登録ボタンを押した場合の処理を記述します。

Private Sub btn登録_Click()

'文字チェック
p_moname = ""
If 文字chk() Then
Else
Exit Sub
End If

If chk項目() Then
Else
Exit Sub
End If

If inttouroku = 1 Then '登録確認(有り)
If MsgBox("登録しますか", (vbYesNo + vbDefaultButton2 + vbInformation) _
, "登録") = vbYes Then
Else
DoCmd.GoToControl "会社名"
Exit Sub
End If
End If

Select Case syorimode
Case 0 '登録
intRet = 会社_更新(0)
Case 1 '変更、削除
intRet = 会社_更新(1)
End Select

On Error GoTo Err_btn登録_Click

DoCmd.Close

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

Exit_btn登録_Click:
Exit Sub

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

Resume Exit_btn登録_Click

End Sub

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

2.会社の更新処理です。

   登録、変更処理をFunctionで処理します。
   upd_modeに送られた数字により処理を別けています。

 2−1.具体的な流れ

  upd_modeが、0の場合、会社マスタのデータを登録します。
  upd_modeが、1の場合、会社マスタのデータを変更します。

  各画面項目からデータ項目に送っていきます。

 2−2.会社_更新の処理です。

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
.CommandText = "sp_会社マスタ_ins"
Else
.CommandText = "sp_会社マスタ_upd"
End If
Set pm = .CreateParameter(, adSmallInt, adParamInput, , [会社コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 20, [代表者名])
.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
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, 60, [振込先3])
.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


End Function


 2−3.会社_更新の処理です。


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
.CommandText = "sp_会社マスタ_ins"
Else
.CommandText = "sp_会社マスタ_upd"
End If
Set pm = .CreateParameter(, adSmallInt, adParamInput, , [会社コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 20, [代表者名])
.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
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, 60, [振込先3])
.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


End Function

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

3.会社マスタ登録時のストアドプロシジャです。

  upd_modeが、0の場合、会社マスタのデータを登録します。

  VBAに記述した項目配列とストアドプロシジャの配列は同じ
  ものでなくてはいけません。

ALTER Procedure sp_会社マスタ_ins
(
@会社コード smallint,
@代表者名 varchar (20),
@会社名 varchar (40),
@郵便番号 varchar (10),
@住所1 varchar (60),
@住所2 varchar (60),
@電話番号 varchar (16),
@FAX番号 varchar (16),
@振込先1 varchar (60),
@振込先2 varchar (60),
@振込先3 varchar (60)
)
As
insert into 会社マスタ (会社コード,代表者名,会社名,郵便番号,住所1,住所2,電話番号,FAX番号,振込先1,振込先2,振込先3)
values (@会社コード,@代表者名,@会社名,@郵便番号,@住所1,@住所2,@電話番号,@FAX番号,@振込先1,@振込先2,@振込先3)
return

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

4.会社マスタ変更時のストアドプロシジャです。

  upd_modeが、1の場合、会社マスタのデータを変更します。

  VBAに記述した項目配列とストアドプロシジャの配列は同じ
  ものでなくてはいけません。

ALTER Procedure sp_会社マスタ_upd
(
@会社コード smallint,
@代表者名 varchar (20),
@会社名 varchar (40),
@郵便番号 varchar (10),
@住所1 varchar (60),
@住所2 varchar (60),
@電話番号 varchar (16),
@FAX番号 varchar (16),
@振込先1 varchar (60),
@振込先2 varchar (60),
@振込先3 varchar (60)
)
As
update 会社マスタ
set 会社コード=@会社コード,代表者名=@代表者名,会社名=@会社名,郵便番号=@郵便番号,住所1=@住所1,住所2=@住所2,電話番号=@電話番号,FAX番号=@FAX番号,振込先1=@振込先1,振込先2=@振込先2,振込先3=@振込先3
where 会社コード = @会社コード
return

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

5.終了ボタンの処理


intsyuuryou = 1

Private Sub btn終了_Click()

If intsyuuryou = 1 Then '終了確認(有り)
If MsgBox(Forms(cFormName_M).Caption & "を終了しますか" & Chr(13) & _
Chr(13) & "登録ボタンを押さずに、終了すると内容は保存されません", _
(vbYesNo + vbDefaultButton2 + vbInformation), "終了") = vbYes Then
Else
DoCmd.GoToControl "会社名"
Exit Sub
End If
End If

On Error GoTo Err_btn終了_Click

DoCmd.Close

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

Exit_btn終了_Click:
Exit Sub

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

Resume Exit_btn終了_Click

End Sub

次回も会社マスタの作成です。

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

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

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.