List 6-67 DataObj.ProductコンポーネントのGetRecordsメソッド
  1: Public Function GetRecords(ByVal IncludeDeleted As Boolean) As ADODB.Recordset
  2:     ' 登録されている製品の一覧をADODB.Recordsetオブジェクトとして返す
  3:     ' 【引数】
  4:     '   IncludeDeleted = 削除ずみを含むかどうかのフラグ
  5:     '                    Trueのとき削除ずみを含む,Falseのとき削除ずみを含まない
  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:     
 13:     ' オブジェクトコンテキストの取得
 14:     Set objContext = GetObjectContext()
 15:     
 16:     ' エラーハンドラの設定
 17:     On Error GoTo ErrHandle
 18:     
 19:     ' 発行するSELECT文
 20:     strQuery = "SELECT ID, PRODUCTNAME, YOMIGANA, PRICE, STOCK, MEMO, " & _
                    "BACKORDER, MADEUSER, MADEDATE, LASTUSER, LASTDATE, " & _
                    "DELETEDFLAG FROM 製品情報"
 21:     
 22:     ' 削除ずみを含まないようにするか
 23:     If Not IncludeDeleted Then
 24:         strQuery = strQuery & " WHERE DELETEDFLAG=0"
 25:     End If
 26:     
 27:     ' データベースと接続し,SELECT文を発行する
 28:     Set objRec = CreateObject("ADODB.Recordset")
 29:     ' カーソルロケーションをクライアントカーソルに設定する
 30:     objRec.CursorLocation = adUseClient
 31:     
 32:     ' SELECT文の実行
 33:     objRec.Open strQuery, g_DBConnection, adOpenStatic, adLockReadOnly, adCmdText
 34:     
 35:     ' データベースコネクションを切り離す
 36:     Set objRec.ActiveConnection = Nothing
 37:     
 38:     ' 取得したレコードセットを戻り値とする
 39:     Set GetRecords = objRec
 40:     Set objRec = Nothing
 41:     
 42:     ' コミットする
 43:     objContext.SetComplete
 44:     
 45:     ' オブジェクトコンテキストの解放
 46:     Set objContext = Nothing
 47:     
 48:     Exit Function
 49: 
 50: ErrHandle:
 51:     ' エラーハンドラ
 52:     objContext.SetAbort
 53:     Set objContext = Nothing
 54:     Set objRec = Nothing
 55:     
 56:     ' エラーの再発行
 57:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 58: End Function