ホームページ >データベース >mysql チュートリアル >Excel-VBA で SQL データベースにアクセスすると、「オブジェクトが閉じられているときは操作は許可されません」というメッセージが表示されるのはなぜですか?
Excel-VBA での SQL データベースへのアクセス: 接続文字列のトラブルシューティング
Excel-VBA から SQL データベースにアクセスすると、次のような問題が発生する可能性があります。実行時エラー:「オブジェクトが閉じられているときは操作は許可されません。」レコードセットから Excel 範囲にデータをコピーしようとしたとき。このエラーは、多くの場合、接続文字列またはレコードセットの状態に問題があることを示します。
この問題の考えられる原因の 1 つは、接続文字列の指定が正しくないことです。データベース名や必要な認証情報など、必要なパラメータがすべて指定されていることを確認してください。元のコード スニペットで指定された接続文字列には、接続先のデータベースを指定する初期カタログ パラメーターがありません。
初期カタログ パラメーターを接続文字列に追加し、より簡単な方法で SQL ステートメントを実行します。 (ADODB.Command オブジェクトではなく) 直接的に問題を解決できます。以下の改訂されたコードには、必要な変更が含まれています:
Sub GetDataFromADO() 'Declare variables' Set objMyConn = New ADODB.Connection Set objMyRecordset = New ADODB.Recordset Dim strSQL As String 'Open Connection' objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=MyDatabase;User ID=abc;Password=abc;" objMyConn.Open 'Set and Excecute SQL Command' strSQL = "select * from myTable" 'Open Recordset' Set objMyRecordset.ActiveConnection = objMyConn objMyRecordset.Open strSQL 'Copy Data to Excel' ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset) End Sub
以上がExcel-VBA で SQL データベースにアクセスすると、「オブジェクトが閉じられているときは操作は許可されません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。