• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA_ADO「ファイアホースモードの間はトランザクションを開)

エクセルVBAでファイアホースモードの間はトランザクションを開始できません

このQ&Aのポイント
  • 最近、エクセルVBAからSQLサーバーを編集するプログラムの勉強をはじめ、ファイアホースモードの間はトランザクションを開始できませんというエラーが出ます。
  • エクセルVBAのプログラムを実行する際に、ファイアホースモードの間はトランザクションを開始することができません。
  • エクセルVBAからSQLサーバーへの編集プログラムで、「ファイアホースモードの間はトランザクションを開始できません」というエラーが表示されます。

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

  • ベストアンサー
回答No.1

>レコードセットの作成(SELECT文の実行) >Set adoRS = adoCON.Execute("select * from 明細") レコード追加・更新でしたらこの部分はいりません。 adoRsはレコードセットされているので、INSERT文のExecuteはできません。ここでトランザクションがおかしくなっています。 レコードを追加するだけでしたら、 Dim adoCON As New ADODB.Connection Dim adoRS As ADODB.Recordset adoCON.Open "Driver={SQL Server};" & _ "server=aaa\db; database=a1; uid=a; pwd=a;" strsql = "INSERT INTO 詳細 (得意先コード) Values(000010)" adoCON.BeginTrans adoCON.Execute strsql If Err.Number = 0 Then adoCON.CommitTrans Else adoCON.RollbackTrans End If adoCON.Close End Sub という感じです。 レコードセットを別に使っているのでしたら、レコードセットで拾ったら、一度トランザクションをきったほうがよいでしょう。

関連するQ&A

専門家に質問してみよう