List 6-51 Business.CustomerコンポーネントのGetCustomersメソッド
  1: Public Function GetCustomers() As ADODB.Recordset
  2:     ' 登録されている顧客の一覧をADODB.Recordsetオブジェクトとして返す
  3:     ' SalesAdminロールまたはAllAdminロールに属する場合には,すべての顧客を,
  4:     ' 属さない場合には,削除ずみの顧客を省いたものを返す
  5:     ' 【引数】
  6:     '   なし
  7:     ' 【戻り値】
  8:     '   すべての顧客を含むADODB.Recordsetオブジェクト
  9:     '   戻り値となるADODB.Recordsetオブジェクトは読み取り専用の閉じたRecordset
 10:     Dim objContext As ObjectContext
 11:     Dim objDataCustomer As DataObj.Customer
 12:     Dim IncludeDeletedFlag As Boolean
 13:     
 14:     ' オブジェクトコンテキストの取得
 15:     Set objContext = GetObjectContext()
 16:     
 17:     ' エラーハンドラの設定
 18:     On Error GoTo ErrHandle
 19:     
 20:     ' DataObj.Customerコンポーネントの実体化
 21:     Set objDataCustomer = CreateObject("DataObj.Customer")
 22:         
 23:     ' GetRecodsメソッドを呼び出して顧客一覧を取得
 24:     If Not objContext.IsSecurityEnabled() Then
 25:         ' 削除ずみを含めない
 26:         IncludeDeletedFlag = False
 27:     Else
 28:         If objContext.IsCallerInRole("SalesAdmin") Or _
                  objContext.IsCallerInRole("AllAdmin") Then
 29:             ' 削除ずみを含める
 30:             IncludeDeletedFlag = True
 31:         Else
 32:             ' 削除ずみを含めない
 33:             IncludeDeletedFlag = False
 34:         End If
 35:     End If
 36:     
 37:     Set GetCustomers = objDataCustomer.GetRecords(IncludeDeletedFlag)
 38:     
 39:     ' DataObj.Customerの解放
 40:     Set objDataCustomer = 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 objDataCustomer = Nothing
 55:     
 56:     ' エラーの再発行
 57:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 58: End Function