※ ChatGPTを利用し、要約された質問です(原文:ADODBを使用してAccessのテーブルを操作する)
ADODBを使用してAccessのテーブルを操作する
このQ&Aのポイント
VB.NET 2008でADODBを使用してMicrosoft AccessのテーブルにデータをINSERTする際に、トランザクション開始時に「オブジェクトが閉じている場合は、操作は許可されません。」というエラーが発生します。
エラーが発生する箇所は、トランザクションの開始時であり、_Connection.BeginTrans()の行でエラーが発生します。
トランザクションの開始前後の処理は、ADODB.Connectionを使用してデータベースに接続し、SQL文を作成して実行しています。
ADODBを使用してAccessのテーブルを操作する
お世話になります。さっそくですが、質問です。
VB.NET 2008において、ADODBを使用して
Microsoft AccessのテーブルにデータをINSERTしたいのですが、
トランザクション開始時に以下のエラーが発生します。
-----------------------------------------------------------
COMExceptionが発生しました。
{"オブジェクトが閉じている場合は、操作は許可されません。"}
-----------------------------------------------------------
トランザクション開始前後の処理を以下に記します。
-----------------------------------------------------------
Private Function fcInsert_testTable(ByVal buff() As String) As Boolean
'変数宣言
Dim _Connection As New ADODB.Connection
Try
'トランザクションの開始
_Connection.BeginTrans() /* ←ここでエラー */
'SQL文の作成
sql.Length = 0
sql.Append(" INSERT INTO ○○マスタ " & vbCrLf)
sql.Append(" (項目1 " & vbCrLf)
sql.Append(" ,項目2 " & vbCrLf)
sql.Append(" ) " & vbCrLf)
sql.Append(" VALUES ( " & vbCrLf)
sql.Append(" NVL('" & buff(1) & "',' ')" & vbCrLf)
sql.Append(" NVL('" & buff(2) & "',' ')" & vbCrLf)
'SQL文の発行
_Connection.Excecute(sql.ToString)
-----------------------------------------------------------
本現象の原因について、どなたかご存知の方がいらっしゃいましたら、
ご教授願えますでしょうか?
お礼
プロバイダ名およびデータソース名を指定することで 問題解決しました。 ありがとうございました!