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