CSV出力するには?

解決


ゆみ  2008-01-22 21:42:58  No: 100126  IP: 192.*.*.*

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

いつもお力になっていただいてありがとうございます。
まだまだ、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-22 23:17:03  No: 100127  IP: 192.*.*.*

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

編集 削除
ゆみ  2008-01-23 00:20:23  No: 100128  IP: 192.*.*.*

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

編集 削除
いな  2008-01-23 09:46:14  No: 100129  IP: 192.*.*.*

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


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

編集 削除
ゆみ  2008-01-24 23:32:51  No: 100130  IP: 192.*.*.*

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

編集 削除
ゆみ  2008-01-24 23:33:13  No: 100131  IP: 192.*.*.*

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

編集 削除