• ベストアンサー

AccessでのROLLBACKについて

動作環境:VB6+Access2000 ADOを使ってVBからAccessのデータベースに接続しています。 COMMITとROLLBACKの機能を追加しようと思い下記プログラムの (1)から(6)を追加して実行すると(1)のところで 「メソッドがみつかりません」というエラーになります。 (1)から(6)を追加するまでは正常に動作しています。 本を参考に(1)から(6)を追加しました。 ようするに「BeginTrans」のメソッドが使えないのでしょうが、 対策を教えて頂くと助かります。 (別にコーディングは別の書き方でもいいですが、ADOは使います) よろしくお願いします。 ------------------------------------------------ プログラム Private Sub ConnectType()  Set mCn = New ADODB.Connection  mCn.ConnectionString = DEF_CONNECT & AppPath & "\" & DBfile  mCn.Open  Set mRs = New ADODB.Recordset  If Text8.Text <> "" Then   mRs.BeginTrans '(1)   mRs.Source = Text8.Text   mRs.ActiveConnection = mCn   mRs.CursorType = adOpenDynamic   mRs.LockType = adLockOptimistic   mRs.Open   If MsgBox("変更を保存しますか?", vbYesNo) = vbYes Then '(2)    mRs.CommitTrans '(3)   Else '(4)    mRs.Rollback '(5)   End If '(6) End If  Debug.Print Text8.Text End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • sgh
  • ベストアンサー率61% (75/121)
回答No.2

ADOのトランザクション メソッドは、Connection オブジェクト内 のトランザクション管理ではなかったでしょうか? レコードセットではなくConnectionに対してトランザクションを かけてみてください。

inuunagi
質問者

お礼

ありがとうございます。 よくわかりました。

その他の回答 (1)

noname#25358
noname#25358
回答No.1

 ADOはあまり使ったことがないので、自信なしで……。  ビギントランスは「データベース」を開始するものです。  mRs はこの場合「レコードセット」ですので、トランザクションの概念はありません。  MSアクセスは、レコードセット単位でのトランザクション制御はできなかったはずです。

inuunagi
質問者

お礼

回答ありがとうございます。