CSV出力するには?

解決


ゆみ  2008-01-23 06:42:58  No: 100126

お世話になっております。
ゆみです。

いつもお力になっていただいてありがとうございます。
まだまだ、VBを始めて1ヶ月の初心者の為、文章の内容が分かりづらかったり、
皆様からみて簡単な事を聞いてしまっているかもしれませんが。
暖かい目で見ていただけると幸いです。

【内容】

VB6でACCESSのADOを使用してプログラムを作成しております。
[tb_datainput]テーブルのデータの[dtmSaveday,sngWeight,sngBodyfat]の項目を
CSVに出力したく思っています。
CSVの場所は[C:\]でファイル名は[test.csv]です。
色々と調べて何とか、CSVファイルにデータが出力されるようにはなったのですが
私の望んでいるような出力方法に出来ません。
みなさまのお力を貸していただけると嬉しいです。

【出力イメージ】
-------------------------------------------------------------------
|          |    A     |     B    |    C     |     D    |    E     | 
-------------------------------------------------------------------
|     1    |          |     1    |    2     |     3    |     4    | ←1行目B列より横に[dtmSaveday]のデータを出力
-------------------------------------------------------------------
|     2    |   体重   |    49    |   49.1   |     49   |    49    | ←2行目B列より横に[sngWeight]のデータを出力
-------------------------------------------------------------------
|     3    |  体脂肪  |    25.0  |    25.0  |    25.0  |    25.0  | ←3行目B列より横に[sngBodyfat]のデータを出力
-------------------------------------------------------------------
|     4    |          |          |          |          |          |
-------------------------------------------------------------------
                ↑
              A1は「空白」、A2は「体重」、A3は「体脂肪」と固定で出力

と言ったような形に出力したいのですが・・・・。
私の力では、力不足で。
一度、見ていただけると嬉しいです。
              

【ソース】

Private Sub Command5_Click()
 
    Dim OutFile As Long
    Dim strline As String
    Dim i As Integer
 
    On Error GoTo Err_CSVCOPY
    
    Set RS = New ADODB.Recordset
 

    strSQL = "SELECT day(dtmSaveday),sngWeight,sngBodyfat FROM tb_datainput"
    RS.Open strSQL, cn
 
    OutFile = FreeFile
    Open "c:\test.csv" For Output As #OutFile
    

 
     strline = Mid(strline, 2)
     Print #OutFile, strline
 
    Print #OutFile, RS.GetString(adClipString, , Chr(31), vbNewLine)
    Close #OutFile
    
   
Exit_CSVCOPY:
    Exit Sub
Err_CSVCOPY:
    MsgBox Err.Description
    Resume Exit_CSVCOPY
    
End Sub


GOD  2008-01-23 08:17:03  No: 100127

SQL文を(イメージの)行ごとに発行して、その都度ファイル出力するのが一番楽な方法じゃないかな。(1列目は自分で補完する必要がありますが)
この場合、必ず「Order By dtmSaveday」等して出力順が一定になるようにしてください。


ゆみ  2008-01-23 09:20:23  No: 100128

GODさん、お返事ありがとうございます。
行ごとに発行して、その都度ファイルに出力するというのは具体的には
どのような感じなのでしょうか?


いな  2008-01-23 18:46:14  No: 100129

1.[dtmSaveday]のデータを取得するSQLを発行
2.取得した結果を、CSV出力
3.[sngWeight]のデータを取得するSQLを発行
4.取得した結果を、CSV出力
5.[sngBodyfat]のデータを取得するSQLを発行
6.取得した結果を、CSV出力


「4」と「6」は追記書込みモード(Append)で出力する。
と言うことだと思います。


ゆみ  2008-01-25 08:32:51  No: 100130

GODさん、いなさんありがとうございました。
結局、必要なところだけをループで回して変数に入れることによって解決しました。


ゆみ  2008-01-25 08:33:13  No: 100131

解決にチェック入れるの忘れちゃいました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加