私は、Excelシート(エクセル2007)にSQLクエリの結果をつかむためにどのように私を示しているMSDNからVBAのコードスニペットをコピーしています:へのアクセスSQLデータベース
Sub GetDataFromADO()
'Declare variables'
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open Connection'
objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=localhost;User ID=abc;Password=abc;"
objMyConn.Open
'Set and Excecute SQL Command'
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "select * from myTable"
objMyCmd.CommandType = adCmdText
objMyCmd.Execute
'Open Recordset'
Set objMyRecordset.ActiveConnection = objMyConn
objMyRecordset.Open objMyCmd
'Copy Data to Excel'
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
End Sub
私はすでにマイクロソフトが追加されましたActiveX Data Objects 2.1リファレンスとしてのライブラリ。そしてこのデータベースはアクセス可能です。
実行時エラー3704:私はこのサブルーチンを実行すると
は今、それがエラーを持っているオブジェクトを閉じたときに操作が許可されていません。声明では
:
ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)
任意のアイデアなぜですか?
ありがとうございました。
ヘルプ:列ヘッダーは、レコードセットのフィールドコレクションを反復処理し、名前を挿入/フィールド名をリストします!私は同じエラーが発生しているが、以下の解決策は役に立たなかった:http://stackoverflow.com/questions/1682717/vba-adodb-run-time-error-3704 – Steven