List 6-142 DataObj.SlipコンポーネントのSet_REQ_CONSENTFLAGメソッド
1: Private Sub Chk_Comment(Comment As Variant)
2: ' コメントが正しいかどうかを調べる
3: If Not IsNull(Comment) Then
4: If Len(Comment) > 80 Then
5: Err.Raise Errorcode.Err_MEMOTOOLONG, App.Title, _
6: "コメントが長すぎます"
7: End If
8: End If
9: End Sub
10:
11: Public Sub Set_REQ_CONSENTFLAG(ByVal SlipID As Long, _
ByVal flag As Boolean, _
ByVal Comment As Variant)
12: ' 指定された伝票のREQ_CONSENTFLAGフィールドの値を変更する
13: ' 【引数】
14: ' SlipID = 変更したい伝票の伝票番号
15: ' flag = 変更後のREQ_CONSENTFLAGフィールドの値
17: ' Comment = 変更時のコメント(flagがTrueのときのみ有効)
18: ' 【戻り値】
19: ' なし
20: Dim objContext As ObjectContext
21: Dim objRec As ADODB.Recordset
22: Dim userName As Variant, NowDate As Variant
23: Dim objHistory As DataObj.History
24:
25: ' オブジェクトコンテキストの取得
26: Set objContext = GetObjectContext()
27:
28: ' エラーハンドラの設定
29: On Error GoTo ErrHandle
30:
31: ' DataObj.Historyコンポーネントの実体化
32: Set objHistory = CreateObject("DataObj.History")
33:
34: ' ユーザー名とその時点の時刻を取得
35: userName = objContext.Security.GetOriginalCallerName()
36: NowDate = Now()
37:
38: ' 与えられた引数が正しいかどうかをチェック
39: Chk_Comment Comment
40:
41: ' データベースと接続して,指定された伝票の伝票情報を更新
42: Set objRec = CreateObject("ADODB.Recordset")
43: objRec.Open "SELECT * FROM 伝票情報 WHERE ID=" & SlipID, _
g_DBConnection, adOpenKeyset, adLockPessimistic,adCmdText
44:
45: If objRec.EOF Then
46: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された伝票番号を持つ伝票が見つかりません"
47: End If
48:
49: ' レコードの値を更新
50: objRec.Fields("LASTUSER").Value = userName
51: objRec.Fields("LASTDATE").Value = NowDate
52:
53: If objRec.Fields("REQ_CONSENTFLAG").Value <> flag Then
54: objHistory.AddHistory "伝票情報", "REQ_CONSENTFLAG", SlipID, _
objRec.Fields("REQ_CONSENTFLAG").Value, flag
55: objRec.Fields("REQ_CONSENTFLAG").Value = flag
56: If flag = True Then
57: objHistory.AddHistory "伝票情報", "REQ_CONSENTUSER", SlipID, _
objRec.Fields("REQ_CONSENTUSER").Value, userName
58: objRec.Fields("REQ_CONSENTUSER").Value = userName
59: objHistory.AddHistory "伝票情報", "REQ_CONSENTDATE", SlipID, _
objRec.Fields("REQ_CONSENTDATE").Value, NowDate
60: objRec.Fields("REQ_CONSENTDATE").Value = NowDate
61: objHistory.AddHistory "伝票情報", "REQ_CONSENTCOMMENT", SlipID, _
objRec.Fields("REQ_CONSENTCOMMENT").Value, Comment
62: objRec.Fields("REQ_CONSENTCOMMENT").Value = Comment
63: End If
64: End If
65:
66: objRec.Update
67:
68: ' データベースとの接続を閉じてレコードセットを解放
69: objRec.Close
70: Set objRec = Nothing
71:
72: ' DataObj.Historyオブジェクトの解放
73: Set objHistory = Nothing
74:
75: ' トランザクションのコミット
76: objContext.SetComplete
77:
78: ' オブジェクトコンテキストの解放
79: Set objContext = Nothing
80:
81: Exit Sub
82:
83: ErrHandle:
84: ' エラーハンドラ
85: objContext.SetAbort
86:
87: Set objContext = Nothing
88: Set objRec = Nothing
89: Set objHistory = Nothing
90:
91: ' エラーの再発行
92: Err.Raise Err.NUMBER, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
93: End Sub