List 5-9 chkStockメソッドの実装
  1: Public Function checkStock(ByVal ProductID As Long) As Long
  2:     'ProductIDで指定されたIDをもつ製品の在庫数を返す
  3:     Dim objCon As ADODB.Connection
  4:     Dim objRec As ADODB.Recordset
  5:     Dim Stock As Long
  6:     Dim objContext As ObjectContext
  7:     
  8:     
  9:     'オブジェクトコンテキストを取得
 10:     Set objContext = GetObjectContext()
 11:     
 12:     'エラーハンドラを設定
 13:     On Error GoTo ErrorHandler
 14:     
 15:     
 16:     'コネクションオブジェクトの作成
 17:     Set objCon = CreateObject("ADODB.Connection")
 18:     
 19:     'データベースを開く
 20:     objCon.Open "Driver=SQL Server; Server=(local); UID=sa;" & _
                     " Database=dbsample"
 21:     
 22:     '在庫テーブルを開き,指定されたテーブルの在庫を取得する
 23:     Set objRec = objCon.Execute("SELECT STOCK FROM 在庫テーブル" & _
                                     " WHERE ID=" & ProductID)
 24:     If objRec.EOF Then
 25:         '在庫が見つからない
 26:         Err.Raise 1 + 513 + vbObjectError, "checkStock", _
                       "指定された製品は見つかりません"
 27:         Exit Function
 28:     End If
 29:     
 30:     '在庫の取得
 31:     Stock = objRec.Fields("STOCK")
 32:     checkStock = Stock
 33:     
 34:     'レコードセットを閉じて破棄
 35:     objRec.Close
 36:     Set objRec = Nothing
 37:     
 38:     'コネクションを閉じて破棄
 39:     objCon.Close
 40:     Set objCon = Nothing
 41:     
 42:     'トランザクションをコミット
 43:     objContext.SetComplete
 44:     
 45:     Exit Function
 46:     
 47: ErrorHandler:
 48:     'エラーハンドラ
 49:     'エラーが発生したときには,トランザクションをアボートに設定
 50:     objContext.SetAbort
 51:     'エラーをもう一回引き起こす
 52:     Err.Raise Err.Number, Err.Source, Err.Description
 53: End Function