List 5-12 acceptOrderメソッド
  1: Public Sub acceptOrder(ByVal ProductID As Long, _
                            ByVal CustomerName As String, _
                            ByVal Number As Long)
  2:     '受注を受け付ける
  3:     Dim objchkstock As dbsamplecom.chkstock
  4:     Dim objsetstock As dbsamplecom.setstock
  5:     Dim objinsorder As dbsamplecom.insorder
  6:     Dim objContext As ObjectContext
  7:     Dim Stock As Long
  8:     
  9:     'オブジェクトコンテキストを取得
 10:     Set objContext = GetObjectContext()
 11: 
 12:     'エラーハンドラを設定
 13:     On Error GoTo ErrorHandler
 14: 
 15:     '各種COMオブジェクトの実体化
 16:     Set objchkstock = CreateObject("dbsamplecom.chkstock")
 17:     Set objsetstock = CreateObject("dbsamplecom.setstock")
 18:     Set objinsorder = CreateObject("dbsamplecom.insorder")
 19:     
 20:     '受注レコードを書き込む
 21:     objinsorder.insertOrder ProductID, CustomerName, Number
 22:     
 23:     '在庫の確認
 24:     Stock = objchkstock.checkStock(ProductID)
 25:     
 26:     '在庫を減らす
 27:     Stock = Stock - Number
 28:     If Stock < 0 Then
 29:         '在庫不足
 30:         Err.Raise 2 + 512 + vbObjectError, "acceptOrder", "在庫不足です"
 31:         Exit Sub
 32:     End If
 33:         
 34:     '減らした在庫を書き込む
 35:     objsetstock.updateStock ProductID, Stock
 36:         
 37:     'COMオブジェクトの破棄
 38:     Set objinsorder = Nothing
 39:     Set objsetstock = Nothing
 40:     Set objchkstock = Nothing
 41:     
 42:     'コミット
 43:     objContext.SetComplete
 44:     Exit Sub
 45:     
 46: ErrorHandler:
 47:     'エラーハンドラ
 48:     'エラーが発生したときには,トランザクションをアボートに設定
 49:     objContext.SetAbort
 50:     'エラーをもう一回引き起こす
 51:     Err.Raise Err.Number, Err.Source, Err.Description
 52:     
 53: End Sub