List 6-95 DataObj.SlipコンポーネントのUpdate_CUSTOMERIDメソッド
1: Public Sub Update_CUSTOMERID(ByVal SlipID As Long, _
ByVal CUSTOMERID As Variant)
2: ' 伝票の対象となる顧客を変更する
3: ' 【引数】
4: ' SlipID = 変更したい伝票を特定する伝票番号を指定する
5: ' CUSTOMERID = 設定したい顧客の顧客番号を指定する
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:
13: ' オブジェクトコンテキストの取得
14: Set objContext = GetObjectContext()
15:
16: ' エラーハンドラの設定
17: On Error GoTo ErrHandle
18:
19: ' DataObj.Historyコンポーネントの実体化
20: Set objHistory = CreateObject("DataObj.History")
21:
22: ' ユーザー名と現在の時刻を取得
23: userName = objContext.Security.GetOriginalCallerName()
24: NowDate = Now()
25:
26: ' 与えられた引数が正しいかどうかをチェック
27: Chk_CustomerID CUSTOMERID
28:
29: ' データベースと接続し,指定された伝票の顧客番号を更新
30: Set objRec = CreateObject("ADODB.Recordset")
31: objRec.Open "SELECT * FROM 伝票情報 WHERE ID=" & SlipID, _
g_DBConnection, adOpenKeyset, adLockPessimistic, adCmdText
32:
33: If objRec.EOF Then
34: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された伝票番号を持つ伝票が見つかりません"
35: End If
36:
37: ' レコードの値を更新
38: If objRec.Fields("CUSTOMERID").Value < CUSTOMERID Or _
(IsNull(objRec.Fields("CUSTOMERID").Value) Xor IsNull(CUSTOMERID)) Then
39: objHistory.AddHistory "伝票情報", "CUSTOMERID", _
CUSTOMERID, _
objRec.Fields("CUSTOMERID").Value, _
CUSTOMERID
40: objRec.Fields("CUSTOMERID").Value = CUSTOMERID
41: End If
42:
43: objRec.Fields("LASTUSER").Value = userName
44: objRec.Fields("LASTDATE").Value = NowDate
45: objRec.Update
46:
47: ' データベースとの接続を閉じてレコードセットを解放
48: objRec.Close
49: Set objRec = Nothing
50:
51: ' DataObj.Historyオブジェクトを解放
52: Set objHistory = Nothing
53:
54: ' トランザクションをコミット
55: objContext.SetComplete
56:
57: ' オブジェクトコンテキストの解放
58: Set objContext = Nothing
59:
60: Exit Sub
61:
62: ErrHandle:
63: ' エラーハンドラ
64: objContext.SetAbort
65:
66: Set objContext = Nothing
67: Set objRec = Nothing
68: Set objHistory = Nothing
69:
70: ' エラーの再発行
71: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
72: End Sub