- 締切済み
【エクセルVBA】OraDBのデータをCSVへ出力
VBA初級者です。 oracleDBのデータをCSVへ出力するマクロをVBAで作成中ですが、実装方法が分からず困っています。 ・DB接続はoo4o ・エクセルは2010 ・SQLで取得したデータを1レコードづつCSVに書き出す ・カラム名をヘッダーとして書き出す 以下のような実現方法でできるか…?と考えたものの、 肝心のマクロ(VBA)でのDBデータの取得⇒CSVへの書き込み方法がいくら調べてもわかりません。 CSVからDBへのインポートはたくさんあったのですが…。 そもそも取得したレコードを配列で保持する、という考え方が合っているのか?ヘッダー(カラム名)はどのように書き出せばいいか? など疑問が尽きません。何卒お力添え頂ければ幸いです。 --ボタンクリック時のアクション-- (1)変数定義 (2)DB接続情報確認 (3)DB接続 'DB接続 Set oraSession = CreateObject("OracleInProcServer.XOraSession") Set oraDatabase = oraSession.OpenDatabase(dbSid, dbUser & "/" & dbPass, ORADB_DEFAULT) (4)書き込み用のCSVファイルを作る (5)SQLを実行し返ってきた結果をsplit関数で配列としてwriteListにAddする (5)作成したCSVファイル内にwriteListのデータをPrint #で書き出す (6)完了メッセージを表示 MsgBox "完了しました " (7)DBの切断 'DBクローズ Set oraDatabase = Nothing Set oraSession = Nothing --SQLを実行するメソッド-- (8)SQLを記述、SELECT結果を(5)に返す 恐れ入りますがよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
Oracle は触ったこともありませんが、このリンクは参考になるかと。 古い記事ですが基本は変わらないかと思います。 カラム名やデータ型についても載っています。 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_s27.htm あと、CSVの仕様も確認しておいた方が宜しいかと。 単純にカンマで区切るだけで良いのか、テキスト型は" "で括る必要があるなど。
- mesihuro
- ベストアンサー率34% (23/66)
Excelなんだから作業シートにでも張り付けてCSV保存してあげればいいだけでは?