• 締切済み

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出力で他にいい方法あったら教えてください!! よろしくお願いします!!!

みんなの回答

  • papapa0427
  • ベストアンサー率25% (371/1472)
回答No.1

ネットワークでご使用でしょうか? CVSファイルを出力されるのは、クライアントマシン上でしょうか?Into文はサーバー上にしか出力できません。 http://dev.mysql.com/doc/refman/5.1/ja/select.html で、構文をチェックされてください。

ilovecupnoodle
質問者

お礼

結局FSOでファイル操作をすることにしました。 ご意見ありがとうございました!

ilovecupnoodle
質問者

補足

補足間違っていたらすみません。 >クライアントマシン上でしょうか? DB、VBA、CSV出力は全て自分のローカルマシン内で設定しています。 なので、クライアントマシン内ということでしょうか。 もしそれが原因で駄目なら代替案を考えねば(泣)

関連するQ&A