• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OracleとVB6.0を勉強している学生です。)

OracleとVB6.0を勉強する学生の悩み - CSV出力について

このQ&Aのポイント
  • OracleとVB6.0を勉強している学生が、あるテーブルから全てのレコードを抽出しCSVで出力したいと悩んでいます。
  • 学生がテーブル名「TEST1」のレコードをCSVに出力するためのVB6.0のコードについて質問しています。
  • 質問者はPrint文の記述方法がわからず、レコードをCSVに出力することができません。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

例えば名前ですが、形式は文字列でしょう。通常は引用符で囲みますね。 また、名前がレコードの先頭フィールドのようなので、以下のように します。 Print #10,""""; Oradynaset.Fields(0).Value; """"; """"は引用符1個を表します。両端の"は文字列の囲みです。この中で 1個の引用符を示すには連続して2個の引用符を記述します。つまり、 内側の""は"を意味します。 次に、項目毎に;(セミコロン)を使っていますが、これは項目出力後に 何もしないという意味です。,(カンマ)ですと、タブかそれに相当する 空白が出力されます。何も記述しないと復帰改行が出力されます。 ということで、フィールドが4個で全て文字型ならば以下のように なります。尚、項目区切りは,(カンマ)と仮定します。 Print #10,""""; Oradynaset.Fields(0).Value; ""","; Print #10,""""; Oradynaset.Fields(1).Value; ""","; Print #10,""""; Oradynaset.Fields(2).Value; ""","; Print #10,""""; Oradynaset.Fields(3).Value; """" 最後だけ項目の後ろがカンマではなく復帰改行になります。

rizaruto
質問者

お礼

回答ありがとうございます。 このような便利な方法があるとは知りませんでした。 大変勉強になります。 ありがとうございました。

その他の回答 (1)

回答No.2

上記ロジックだと、最後のレコードしか出力されないと思いますけど。 ファイルのopenは、Do Until Oradynaset.EOF の上に Close #10は、Loopの下にしないとダメだと思います。 あとexit subは、なんで二つある??

rizaruto
質問者

お礼

回答ありがとうございます。 確かにOpenは上に Closeは下にないとだめですよね・・・。 ファイル名が一緒なのでいいかなとか思ってましたが LOOPする上ではそちらのほうが良いので改善いたしました。 ありがとうございました。