List 6-172 DataObj.BillコンポーネントのAddRecordメソッド
  1: Public Function AddRecord(ByVal CustomerID As Long, _
                               ByVal STARTDATE As Date, _
                               ByVal ENDDATE As Date, _
                               ByVal SUBTOTAL As Currency, _
                               ByVal TAX As Currency, _
                               ByVal TOTAL As Currency) As Long
  2:     ' 請求書テーブルに請求書のレコードを追加する
  3:     ' 【引数】
  4:     '   CUSTOMERID = 顧客の顧客番号
  5:     '   STARTDATE = 請求書に記載する集計期間の開始日(この日を含む)
  6:     '   ENDDATE = 請求書に記載する集計期間の終了日(この日を含む)
  7:     '   SUBTOTAL = 請求書に記載する小計
  8:     '   TAX = 請求書に記載する消費税額
  9:     '   TOTAL = 請求書に記載する合計額
 10:     ' 【戻り値】
 11:     '   追加された請求書の請求書番号(IDフィールドの値)
 12:     Dim objContext As ObjectContext
 13:     Dim objRec As ADODB.Recordset
 14:     Dim userName As String, NowDate As Date
 15:     
 16:     ' オブジェクトコンテキストの取得
 17:     Set objContext = GetObjectContext()
 18:     
 19:     ' エラーハンドラの設定
 20:     On Error GoTo ErrHandle
 21:     
 22:     ' ユーザー名とその時点の時刻を取得
 23:     userName = objContext.Security.GetOriginalCallerName()
 24:     NowDate = Now()
 25:     
 26:     ' データベースと接続して,書き込み可能なレコードセットを得る
 27:     Set objRec = CreateObject("ADODB.Recordset")
 28:     objRec.Open "請求書情報", g_DBConnection, adOpenKeyset, _
                     adLockPessimistic, adCmdTable
 29:                 
 30:     ' 新しいレコードを追加
 31:     objRec.AddNew
 32:     
 33:     ' レコードにデータを設定
 34:     objRec.Fields("CUSTOMERID").Value = CustomerID
 35:     objRec.Fields("STARTDATE").Value = STARTDATE
 36:     objRec.Fields("ENDDATE").Value = ENDDATE
 37:     objRec.Fields("MADEDATE").Value = NowDate
 38:     objRec.Fields("SUBMITDATE").Value = Null
 39:     objRec.Fields("PAIDFLAG").Value = False
 40:     objRec.Fields("SENDBILLFLAG").Value = False
 41:     objRec.Fields("SUBTOTAL").Value = SUBTOTAL
 42:     objRec.Fields("TAX").Value = TAX
 43:     objRec.Fields("TOTAL").Value = TOTAL
 44:     objRec.Fields("MEMO").Value = Null
 45:     objRec.Fields("SUBMITUSER").Value = Null
 46:     objRec.Fields("MADEUSER").Value = userName
 47:     objRec.Fields("LASTUSER").Value = userName
 48:     objRec.Fields("LASTDATE").Value = NowDate
 49:     objRec.Fields("DELETEDFLAG").Value = False
 50:     
 51:     ' データベースに反映
 52:     objRec.Update
 53:     
 54:     ' 作成した請求書の請求書番号を戻り値として設定する
 55:     AddRecord = objRec.Fields("ID").Value
 56:     
 57:     ' データベースとの接続を閉じてレコードセットを解放
 58:     objRec.Close
 59:     Set objRec = Nothing
 60:     
 61:     ' トランザクションのコミット
 62:     objContext.SetComplete
 63:     
 64:     ' オブジェクトコンテキストの解放
 65:     Set objContext = Nothing
 66:     
 67:     Exit Function
 68:     
 69: ErrHandle:
 70:     ' エラーハンドラ
 71:     objContext.SetAbort
 72:     
 73:     Set objContext = Nothing
 74:     Set objRec = Nothing
 75:     
 76:     ' エラーの再発行
 77:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 78: End Function