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

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



2006/06/13配信
 

第7コース  第6回 「商品マスタの作成」




 

 商品マスタの作成、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_tancd = 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 '白色


   この処理は商品コード(テキスト)の入力が出来る状態にします。
   商品コードを入力して存在すれば、取消ボタンを押さない限り
   入力できないようにしていますのでここで解除しています。

   処理が終わればカーソルを商品コードにフォーカスをあてます。
   フォーカスをあてるのは、入力できる状態にするという事です。

   登録ボタンを押せば登録処理が終わります。
   次は、また商品を入力することになります。
   だから、マウスでを商品コードにわざわざセットしなくて
   済むようにカーソルを自動で移動させてやります。
   それを行うのが、SetFocusです。

-*-------*-------*-------*-------*-------*-------*-------*-------*-

 それでは、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

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(, adCurrency, adParamInput, , _
[売上単価])
.Parameters.Append pm
Set pm = .CreateParameter(, adCurrency, adParamInput, , _
[仕入単価])
.Parameters.Append pm

'◎ポイント解説 6  -----*-----*-----*-----

If IsNull([大分類].Column(0)) Or Trim([大分類].Column(0)) & _
"" = "" Then
daicd = Int(0)
End If
Set pm = .CreateParameter(, adSmallInt, adParamInput, , daicd)
.Parameters.Append pm
If IsNull([中分類].Column(0)) Or Trim([中分類].Column(0)) & _
"" = "" Then
cyucd = Int(0)
End If
Set pm = .CreateParameter(, adSmallInt, adParamInput, , cyucd)
.Parameters.Append pm

If [消費税区分] = "外税" Then
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
Int(1))
.Parameters.Append pm
Else
If [消費税区分] = "内税" Then
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
Int(2))
.Parameters.Append pm
Else
If [消費税区分] = "非課税" Then
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
Int(3))
.Parameters.Append pm
Else
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
Int(0))
.Parameters.Append pm
End If
End If
End If

Set pm = .CreateParameter(, adVarChar, adParamInput, 10, _
Trim([消費税区分])) '消費税区分名
.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),
@売上単価  money,
@仕入単価  money,
@大分類   smallint,
@中分類   smallint,
@消費税区分 smallint
)
As
insert into 商品マスタ (商品コード,商品名,カナ名,売上単価,
仕入単価,大分類,中分類,消費税区分)
values (@商品コード,@商品名,@カナ名,@売上単価,@仕入単価,
@大分類,@中分類,@消費税区分)
return


   insert into 商品マスタ (項目1、項目2・・・)
            values (項目a、項目b・・・)

   項目同士が合っていれば、順番はどうでも構いません。
   でも、お互いの項目は合っていないといけません。
   項目1と項目aは同じ、そして項目2と項目bも同じと言うように。


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

  商品マスタの変更の処理となります。

  商品_更新(upd_mode As Integer)のupd_modeには、1が入っています。

  "sp_商品マスタ_upd"のストアドプロシージャを実行します。

  マスタはいくつか作ってきましたので、ここは自分で
  作ってみて下さい。
  そんなに難しいものではありませんよね。

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

  大分類、中分類を変数にいれてそれを送っています。

  消費税区分は、1:外税、2:内税、3:非課税 を入れています。

 商品マスタは、販売管理システムではとても重要なファイルとなります。
 ここで必要な項目はもれなく作っておきましょう。

 次回も、商品マスタの作成となります。

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

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