- 締切済み
VBAでのSQL文によるエラー
よろしくお願いします。 現在VBAでMySQLに接続し、複数のselect文を実行した結果をcsv出力したいのですが、 select文にinto outfileを入れると、 「オブジェクトが閉じている場合は、操作できません」のようなメッセージが出てしまいます。 普通のselectや、where付のselectに変えたところ、このエラーは出ませんでした。 以下サンプルコードです。 Dim cnct As ADODB.Connection Dim slct01 As ADODB.Recordset Dim slct02 As ADODB.Recordset Dim cnstSTR As String Dim sql01 As String Dim sql02 As String '接続文字列 cnstSTR = "Driver={MySQL ODBC 5.1 DRIVER};"・・・(←接続文字列は省きます) Set cnct = New ADODB.Connection cnct.Open cnstSTR Set rs = cnct.Execute("select * from table01 into outfile " & "'C:/test/test01.csv'" & " FIELDS TERMINATED BY ',';"")←ここ Set ds = cnct.Execute("select * from table2" into outfile " & "'C:/test/test02.csv'" & " FIELDS TERMINATED BY ',';"") 'テーブルのクローズ slct01.Close slct02.Close 'データベースのクローズ cnct .Close Set slct01= Nothing Set slct02= Nothing Set cnct = Nothing やはりinto outfileが原因でしょうか。。。 ソースの修正や、csv出力で他にいい方法あったら教えてください!! よろしくお願いします!!!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- papapa0427
- ベストアンサー率25% (371/1472)
ネットワークでご使用でしょうか? CVSファイルを出力されるのは、クライアントマシン上でしょうか?Into文はサーバー上にしか出力できません。 http://dev.mysql.com/doc/refman/5.1/ja/select.html で、構文をチェックされてください。
お礼
結局FSOでファイル操作をすることにしました。 ご意見ありがとうございました!
補足
補足間違っていたらすみません。 >クライアントマシン上でしょうか? DB、VBA、CSV出力は全て自分のローカルマシン内で設定しています。 なので、クライアントマシン内ということでしょうか。 もしそれが原因で駄目なら代替案を考えねば(泣)