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

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



2005/08/02配信
 

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




 

 前回は、以下の説明をしました。

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

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


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


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