List 6-141 Business.SlipコンポーネントのUndeleteSlipメソッド
  1: Public Sub UndeleteSlip(ByVal SlipID As Long)
  2:     ' 指定された伝票を復活する
  3:     ' 【引数】
  4:     '   SlipID = 復活したい伝票の伝票番号
  5:     Dim objContext As ObjectContext
  6:     Dim objDataSlip As DataObj.Slip
  7:     Dim objDataCustomer As DataObj.Customer
  8:     Dim old_CUSTOMERID As Variant, old_SUBTOTAL As Variant, old_TAX As Variant
  9:     Dim old_TOTAL As Variant, old_MADEDATE As Variant, old_MADEUSER As Variant
 10:     Dim old_LASTUSER As Variant, old_LASTDATE As Variant
 11:     
 12:     ' オブジェクトコンテキストの取得
 13:     Set objContext = GetObjectContext()
 14:     
 15:     ' エラーハンドラの設定
 16:     On Error GoTo ErrHandle
 17:       
 18:     ' DataObj.Slipコンポーネントの実体化
 19:     Set objDataSlip = CreateObject("DataObj.Slip")
 20:     
 21:     ' その時点の伝票の情報を取得
 22:     objDataSlip.GetRecord_Slip SlipID, old_CUSTOMERID, _
                                    old_SUBTOTAL, old_TAX, old_TOTAL, _
                                    old_MADEDATE, old_MADEUSER, _
                                    old_LASTDATE, old_LASTUSER
 23:     
 24:     ' DataObj.Customerコンポーネントの実体化
 25:     Set objDataCustomer = CreateObject("DataObj.Customer")
 26:     ' 復活したときに伝票の対象となる顧客が存在することを確認
 27:     If objDataCustomer.IsDeleted(old_CUSTOMERID) <> ID_Exists Then
 28:         Err.Raise BusinessError.ERR_CANTACCESS, App.Title, _
                       "対象となる顧客がすでに削除されているため復活できません"
 29:     End If
 30:     
 31:     ' DELETEDFLAGフィールドの値をFalseに設定し,復活させる
 32:     objDataSlip.SetDeletedFlag SlipID, False
 33:     
 34:     ' DataObj.Slip,DataObj.Customerを解放
 35:     Set objDataSlip = Nothing
 36:     Set objDataCustomer = Nothing
 37: 
 38:     ' トランザクションのコミット
 39:     objContext.SetComplete
 40:     ' オブジェクトコンテキストの解放
 41:     Set objContext = Nothing
 42:     
 43:     Exit Sub
 44: 
 45: ErrHandle:
 46:     ' エラーハンドラ
 47:     objContext.SetAbort
 48:     Set objContext = Nothing
 49:     Set objDataSlip = Nothing
 50:     Set objDataCustomer = Nothing
 51:     
 52:     ' エラーの再発行
 53:     Err.Raise Err.NUMBER, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 54: End Sub