List 6-178 DataObj.BillコンポーネントのGet_BillStatusメソッド
1: Public Function Get_BillStatus(ByVal BillID As Long) As BillStatus
2: ' 請求書の状態を返す
3: ' 【引数】
4: ' BillID = 状態を調べたい請求書の請求書番号
5: ' 【戻り値】
6: ' その請求書の現在の状態。BillStatus列挙型のいずれかの値
7: Dim objContext As ObjectContext
8: Dim objRec As ADODB.Recordset
9:
10: ' オブジェクトコンテキストの取得
11: Set objContext = GetObjectContext()
12:
13: ' エラーハンドラの設定
14: On Error GoTo ErrHandle
15:
16: ' 指定された請求書番号に相当する請求書を取得
17: Set objRec = CreateObject("ADODB.Recordset")
18: objRec.Open "SELECT PAIDFLAG, SENDBILLFLAG, DELETEDFLAG FROM 請求書情報 " & _
" WHERE ID=" & BillID, _
g_DBConnection, adOpenForwardOnly, adLockReadOnly, adCmdText
19:
20: If objRec.EOF Then
21: Err.Raise Errorcode.Err_NOTFOUND, App.Title, _
"指定された請求書番号を備えた請求書が見つかりません"
22: End If
23:
24: ' 請求書の状態を調査
25: If objRec.Fields("DELETEDFLAG").Value Then
26: ' 削除ずみ
27: Get_BillStatus = BILL_Deleted
28: ElseIf objRec.Fields("SENDBILLFLAG").Value Then
29: ' 請求書送付ずみ
30: Get_BillStatus = BILL_Send
31: ElseIf objRec.Fields("PAIDFLAG").Value Then
32: ' 送付ずみ
33: Get_BillStatus = BILL_Paid
34: Else
35: ' 作成ずみ
36: Get_BillStatus = BILL_Created
37: End If
38:
39: ' データベースとの接続を閉じてレコードセットを解放
40: objRec.Close
41: Set objRec = Nothing
42:
43: ' トランザクションのコミット
44: objContext.SetComplete
45:
46: ' オブジェクトコンテキストの解放
47: Set objContext = Nothing
48:
49: Exit Function
50:
51: ErrHandle:
52: ' エラーハンドラ
53: objContext.SetAbort
54:
55: Set objContext = Nothing
56: Set objRec = Nothing
57:
58: ' エラーの再発行
59: Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
60: End Function