List 6-193 DataObj.SlipコンポーネントのGetRecordsByBillIDメソッド
  1: Public Function GetRecordsByBillID(ByVal BillID As Long) _
                                       As ADODB.Recordset
  2:     ' 指定された請求書に結び付けられている伝票の一覧を返す
  3:     ' 【引数】
  4:     '   BillID = 請求書を特定する請求書番号
  5:     ' 【戻り値】
  6:     '   指定された請求書に結び付けられている伝票の一覧を含む
  7:     '   ADODB.Recordsetオブジェクト
  8:     '   戻り値となるADODB.Recordsetオブジェクトは読み取り専用の閉じたRecordset
  9:     Dim objContext As ObjectContext
 10:     Dim objRec As ADODB.Recordset
 11:     Dim strQuery As String
 12:     Dim userName As String
 13:     
 14:     ' オブジェクトコンテキストの取得
 15:     Set objContext = GetObjectContext()
 16:     
 17:     ' エラーハンドラの設定
 18:     On Error GoTo ErrHandle
 19:     
 20:     ' 発行するSELECT文
 21:     strQuery = "SELECT 伝票情報.ID As ID, 伝票情報.CUSTOMERID As CUSTOMERID, " & _
                    "顧客情報.NAME As CUSTOMERNAME, 伝票情報.SUBTOTAL As SUBTOTAL," & _
                    "伝票情報.TAX As TAX, 伝票情報.TOTAL As TOTAL," & _
                    "伝票情報.BILLID As BILLID, 伝票情報.BILLDATE As BILLDATE," & _
                    "伝票情報.MADEBILLFLAG As MADEBILLFLAG, 伝票情報.ONEBILLFLAG As ONEBILLFLAG," & _
                    "伝票情報.REQ_CONSENTFLAG As REQ_CONSENTFLAG, 伝票情報.REQ_CONSENTDATE As REQ_CONSENTDATE," & _
                    "伝票情報.REQ_CONSENTCOMMENT As REQ_CONSENTCOMMENT, 伝票情報.CONSENTEDFLAG As CONSENTEDFLAG," & _
                    "伝票情報.CONSENTEDDATE As CONSENTEDDATE, 伝票情報.CONSENTEDCOMMENT As COMSENTEDCOMMENT," & _
                    "伝票情報.REJECTEDFLAG As REJECTEDFLAG, 伝票情報.REJECTEDDATE As REJECTEDDATE," & _
                    "伝票情報.REJECTEDCOMMENT As REJECTEDCOMMENT, 伝票情報.SENDFLAG As SENDFLAG," & _
                    "伝票情報.SENDDATE As SENDDATE, 伝票情報.SENDCOMMENT As SENDCOMMENT," & _
                    "伝票追加情報.DIVISION As DIVISION, 伝票追加情報.PERSON As PERSON," & _
                    "伝票追加情報.DELIVERDATE As DELIVERDATE, 伝票追加情報.SENT_ADDR As SENT_ADDR," & _
                    "伝票追加情報.SENT_TEL As SENT_TEL, 伝票追加情報.MEMO As MEMO," & _
                    "伝票情報.ACCOUNTINGFLAG As ACCOUNTINGFLAG, 伝票情報.ACCOUNTINGDATE As ACCOUNTINGDATE," & _
                    "伝票情報.ACCOUNTINGCOMMENT As ACCOUNTINGCOMMENT, 伝票情報.MADEDATE," & _
                    "伝票情報.MADEUSER As MADEUSER, 伝票情報.REQ_CONSENTUSER As REQ_CONSENTUSER," & _
                    "伝票情報.CONSENTEDUSER As CONSENTEDUSER, 伝票情報.REJECTEDUSER As REJECTEDUSER," & _
                    "伝票情報.SENDUSER As SENDUSER, 伝票情報.ACCOUNTINGUSER As ACCOUNTINGUSER," & _
                    "伝票情報.LASTUSER As LASTUSER, 伝票情報.LASTDATE As LASTDATE," & _
                    "伝票情報.DELETEDFLAG As DELETEDFLAG" & _
                    " FROM 伝票情報, 顧客情報, 伝票追加情報" & _
                    " WHERE 伝票情報.CUSTOMERID = 顧客情報.ID" & _
                    "   AND 伝票情報.ID = 伝票追加情報.SLIPID" & _
                    "   AND 伝票追加情報.DELETEDFLAG = 0"
 22:     
 23:     ' 請求書作成ずみのものだけ
 24:     strQuery = strQuery & " AND 伝票情報.MADEBILLFLAG=1"
 25:     ' 指定された請求書に結び付けられているものだけ
 26:     strQuery = strQuery & " AND 伝票情報.BILLID=" & BillID
 27:     
 28:     ' データベースと接続し,SELECT文を発行
 29:     Set objRec = CreateObject("ADODB.Recordset")
 30:     ' カーソルロケーションをクライアントカーソルに設定
 31:     objRec.CursorLocation = adUseClient
 32:     
 33:     ' SELECT文の実行
 34:     objRec.Open strQuery, g_DBConnection, adOpenStatic, _
                     adLockReadOnly, adCmdText
 35:     
 36:     ' ' データベースコネクションを遮断
 37:     Set objRec.ActiveConnection = Nothing
 38:     
 39:     ' 取得したレコードセットを戻り値とする
 40:     Set GetRecordsByBillID = objRec
 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:     Set objContext = Nothing
 55:     Set objRec = Nothing
 56:     
 57:     ' エラーの再発行
 58:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 59: End Function