List 6-32 DataObj.CustomerコンポーネントのDeleteRecordメソッド
  1: Public Sub DeleteRecord(ByVal CustomerID As Long)
  2:     ' 顧客情報テーブルから指定された顧客のレコードを削除する
  3:     ' 【引数】
  4:     '   ID = 削除したい顧客の顧客番号
  5:     ' 【戻り値】
  6:     '   なし
  7:     Dim objContext As ObjectContext
  8:     Dim objConn As ADODB.Connection
  9:     Dim userName As String, NowDate As Date
 10:     Dim objHistory As DataObj.History
 11:     
 12:     ' オブジェクトコンテキストの取得
 13:     Set objContext = GetObjectContext()
 14:     
 15:     ' エラーハンドラの設定
 16:     On Error GoTo ErrHandle
 17:     
 18:     ' DataObj.Historyコンポーネントの実体化
 19:     Set objHistory = CreateObject("DataObj.History")
 20:     
 21:     ' ユーザー名と現在の時刻を取得
 22:     userName = objContext.Security.GetOriginalCallerName()
 23:     NowDate = Now()
 24:     
 25:     ' データベースと接続して,削除する
 26:     Set objConn = CreateObject("ADODB.Connection")
 27:     objConn.Open g_DBConnection
 28:     objConn.Execute "DELETE FROM 顧客情報 WHERE ID=" & CustomerID
 29:     
 30:     ' データベースとの接続を閉じる
 31:     objConn.Close
 32:     Set objConn = Nothing
 33:     
 34:     ' 履歴の追加
 35:     ' 本当にレコードが削除されたときには,履歴として-1を残すことにした
 36:     ' -1という値は適当。どのみち履歴はあとで人が見るだけなのでどんな値でもよいだろう
 37:     objHistory.AddHistory "顧客情報", "DELETEDFLAG", CustomerID, -1, -1
 38:     Set objHistory = Nothing
 39:     
 40:     ' コミットする
 41:     objContext.SetComplete
 42:     
 43:     ' オブジェクトコンテキストの解放
 44:     Set objContext = Nothing
 45: 
 46:     Exit Sub
 47:     
 48: ErrHandle:
 49:     ' エラーハンドラ
 50:     objContext.SetAbort
 51:     Set objContext = Nothing
 52:     Set objConn = Nothing
 53:     Set objHistory = Nothing
 54:     
 55:     ' エラーの再発行
 56:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 57: End Sub