List 6-150 DataObj.ProductコンポーネントのAddBackOrderメソッド
1: Public Sub AddBackOrder(ByVal ProductID As Long, _
ByVal NUMBER As Long)
2: ' 指定された製品の予約数(BACKORDERフィールドの値)を指定された数だけ増やす
3: ' 【引数】
4: ' ProductID = 予約数を変更したい製品の製品番号
5: ' NUMBER = 増加する数量
6: ' 【戻り値】
7: ' なし
8: Dim objContext As ObjectContext
9: Dim objRec As ADODB.Recordset
10: Dim userName As String, NowDate As Date
11: Dim objHistory As DataObj.History
12: Dim NewBackOrder As Long
13:
14: ' オブジェクトコンテキストの取得
15: Set objContext = GetObjectContext()
16:
17: ' エラーハンドラの設定
18: On Error GoTo ErrHandle
19:
20: ' DataObj.Historyコンポーネントの実体化
21: Set objHistory = CreateObject("DataObj.History")
22:
23: ' ユーザー名とその時点の時刻を取得
24: userName = objContext.Security.GetOriginalCallerName()
25: NowDate = Now()
26:
27: ' データベースと接続し,指定された製品の予約数を更新
28: Set objRec = CreateObject("ADODB.Recordset")
29: objRec.Open "SELECT BACKORDER, LASTUSER, LASTDATE FROM 製品情報 WHERE ID=" & _
ProductID & " AND DELETEDFLAG=0", _
g_DBConnection, adOpenKeyset, adLockPessimistic, adCmdText
30:
31: If objRec.EOF Then
32: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された製品番号を持つ製品が見つかりません"
33: End If
34:
35: ' レコードの値を更新
36: NewBackOrder = objRec.Fields("BACKORDER").Value + NUMBER
37: objHistory.AddHistory "製品情報", "BACKORDER", ProductID, _
objRec.Fields("BACKORDER").Value, NewBackOrder
38: objRec.Fields("BACKORDER").Value = NewBackOrder
39:
40: objRec.Fields("LASTUSER").Value = userName
41: objRec.Fields("LASTDATE").Value = NowDate
42: objRec.Update
43:
44: ' データベースとの接続を閉じてレコードセットを解放
45: objRec.Close
46: Set objRec = Nothing
47:
48: ' DataObj.Historyオブジェクトの解放
49: Set objHistory = Nothing
50:
51: ' トランザクションのコミット
52: objContext.SetComplete
53:
54: ' オブジェクトコンテキストの解放
55: Set objContext = Nothing
56:
57: Exit Sub
58:
59: ErrHandle:
60: ' エラーハンドラ
61: objContext.SetAbort
62:
63: Set objContext = Nothing
64: Set objRec = Nothing
65: Set objHistory = Nothing
66:
67: ' エラーの再発行
68: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
69: End Sub