List 6-187 DataObj.BillコンポーネントのSet_SENDBILLFLAGメソッド
1: Public Sub Set_SENDBILLFLAG(ByVal BillID As Long, _
ByVal flag As Boolean)
2: ' 指定された請求書のSENDBILLFLAGフィールドの値を変更する
3: ' 【引数】
4: ' BillID = 変更したい請求書の請求書番号
5: ' flag = 設定するSENDBILLFLAGフィールドの値
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: Set objRec = CreateObject("ADODB.Recordset")
28: objRec.Open "SELECT * FROM 請求書情報 WHERE ID=" & BillID, _
g_DBConnection, adOpenKeyset, adLockPessimistic, adCmdText
29:
30: If objRec.EOF Then
31: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された請求書番号を持つ請求書が見つかりません"
32: End If
33:
34: ' レコードの値を更新
35: objRec.Fields("LASTUSER").Value = userName
36: objRec.Fields("LASTDATE").Value = NowDate
37:
38: If objRec.Fields("SENDBILLFLAG").Value <> flag Then
39: objHistory.AddHistory "請求書情報", "SENDBILLFLAG", _
BillID, objRec.Fields("SENDBILLFLAG").Value, flag
40: objRec.Fields("SENDBILLFLAG").Value = flag
41: End If
42:
43: objRec.Update
44:
45: ' データベースとの接続を閉じてレコードセットを解放
46: objRec.Close
47: Set objRec = Nothing
48:
49: ' DataObj.Historyオブジェクトの解放
50: Set objHistory = Nothing
51:
52: ' トランザクションのコミット
53: objContext.SetComplete
54:
55: Exit Sub
56:
57: ErrHandle:
58: ' エラーハンドラ
59: objContext.SetAbort
60:
61: Set objContext = Nothing
62: Set objRec = Nothing
63: Set objHistory = Nothing
64:
65: ' エラーの再発行
66: Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
67: End Sub