• ベストアンサー

bcpで抽出した結果をエクセルに保存できませんか

バッチ処理で、bcpを使ってSQLの実行を行っています。この実行結果(データ抽出)をエクセルに保存させることは出来ませんでしょうか。 ネットでエクセルに保存させる方法がないかいろいろ探してみましたが、探し方が悪いのか方法を探し出すことが出来ませんでした。 最終的には、毎日エクセルファイルにデータを吐き出すことが出来るようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

bcpにこだわらなくてもいいのではないでしょうか。 vbscriptを使って Option Explicit Dim cn Dim rs Dim exl Dim Book Set exl = CreateObject("Excel.Application") exl.visible = True if exl is nothing then msgbox("excel 起動エラー") WScript.Quit 1 else exl.Workbooks.Open "C:\users\xxx\book1.xls" end if 'ADOオブジェクトを作成します Set cn = CreateObject("ADODB.Connection") cn.Open "Driver={SQL Server};server=(local);database=pubs;user id=xx;password=xx;" if cn is nothing then msgbox("SQL Server 接続エラー") exl.quit set exl = Nothing WScript.Quit 1 end if set rs = cn.execute("select ~") exl.sheets("Sheet1").cells(1,1).copyfromrecordset rs exl.Workbooks("db1.xls").Save exl.quit Set exl = Nothing rs.close cn.Close Set rs = Nothing Set cn = Nothing という内容のファイル(仮にado.vbs)を作成して Cscript /nologo ado.vbs というコマンドを実行すればどうでしょう。

Antic
質問者

お礼

最終的にエクセルの形式で保存できればいいので、bcpにこだわる必要はないです。 vbscriptでできるんですね、ありがとうございます、さっそく実施させていただきます!

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

すみません > exl.Workbooks("db1.xls").Save はexl.Workbooks("book1.xls").Save の誤りです。

すると、全ての回答が全文表示されます。
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

出力ファイルの拡張子をcsvにすれば よいのでは?

Antic
質問者

お礼

ご回答ありがとうございます。 そうですよね、CSVでいいじゃんって思いますよね、 相手側からの要望でエクセルで抽出する必要があるため、 CSVはダメと言われてしまいました。

すると、全ての回答が全文表示されます。

関連するQ&A