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

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



2005/04/06配信
 

第4コース  第11回 「名称マスタの作成」




 

名称マスタの作成です。

今回は、登録処理の説明となります。

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

1.登録ボタンの処理

  文字chk()、納品書区分チェック()、chk項目()でエラーがないものを
  名称マスタに登録します。

  syorimodeが"0"の場合、新規登録となります。
  名称_更新(0)で処理します。

  syorimodeが"1"の場合、変更登録となります。
  名称_更新(1)で処理します。

    フォームをクリアして、[名称区分コード]にセットフォーカスします。


Private Sub btn登録_Click()

p_moname = ""
If 文字chk() Then
Else
Exit Sub
End If

If Me![名称区分コード] = "納品書見出し" Then
If 納品書区分チェック() Then
Else
Exit Sub
End If
End If

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

btn登録_Click_job01:

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

From_Clr

[名称区分コード].Enabled = True
[名称区分コード].Locked = False
[名称区分コード].BackColor = 16777215 '白色
[名称コード].Enabled = True
[名称コード].Locked = False
[名称コード].BackColor = 16777215 '白色

[名称区分コード].SetFocus

End Sub

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

2.納品書区分チェックの処理

    納品書区分により、1:納品書、2:物品受領書を判断しています。
    それ以外はエラーです。

Function 納品書区分チェック()

納品書区分チェック = True

'納品書区分(1:納品書,2:物品受領書)

Select Case Me![納品書区分]
Case "納品書"
nouhin = Int(1)
Case "物品受領書"
nouhin = Int(2)
Case Else
MsgBox "該当しない納品書区分が選択されてます", _
vbExclamation, "注意"
納品書区分チェック = False
Me![納品書区分].SetFocus
Exit Function
End Select

End Function

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

3.名称_更新の処理

           upd_modeが"0"の場合sp_名称マスタ_insのストアドプロシジャを
     行います。

           upd_modeが"1"の場合sp_名称マスタ_updのストアドプロシジャを
     行います。


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

If Me![名称区分コード] = "大分類" Then
dencode = Int(1)
Else
If Me![名称区分コード] = "中分類" Then
dencode = Int(2)
Else
If Me![名称区分コード] = "納品書見出し" Then
dencode = Int(3)
Else
If Me![名称区分コード] = "請求書見出し" Then
dencode = Int(4)
Else
If Me![名称区分コード] = "納品書備考" Then
dencode = Int(5)
Else
If Me![名称区分コード] = "請求書備考" Then
dencode = Int(6)
Else
If Me![名称区分コード] = "回収方法" Then
dencode = Int(7)
Else
If Me![名称区分コード] = "単位" Then
dencode = Int(8)
End If
End If
End If
End If
End If
End If
End If
End If

Set pm = .CreateParameter(, adSmallInt, adParamInput, , dencode)
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , _
[名称コード])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 70, _
[名称名])
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , nouhin)
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , [区分1])
.Parameters.Append pm
Set pm = .CreateParameter(, adSmallInt, adParamInput, , [区分2])
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 40, _
[見出し])
.Parameters.Append pm

iro = ""
If (Me![名称区分コード] = "納品書見出し") Or _
(Me![名称区分コード] = "請求書見出し") Then
Select Case 色選択.Value
Case 1
iro = "黒"
Case 2
iro = "緑"
Case 3
iro = "赤"
Case 4
iro = "青"
Case 5
iro = "灰"
Case 6
iro = "茶"
Case 7
iro = "水"
Case Else
End Select
End If

Set pm = .CreateParameter(, adVarChar, adParamInput, 2, iro) '色
.Parameters.Append pm

Set pm = .CreateParameter(, adVarChar, adParamInput, 2, _
Format$([dencode], "00")) '名称区分コード文字
.Parameters.Append pm
Set pm = .CreateParameter(, adVarChar, adParamInput, 3, _
Format$([名称コード], "000")) '名称コード文字
.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

 ストアドプロシジャの記述は次回と致します。

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

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

なるほど、これで解決、vbaを使いこなす方法をお教えします

  編集・構成:高橋浩
  提供・発行:ティウェア

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.