お世話になっております。
ゆみです。
いつもお力になっていただいてありがとうございます。
まだまだ、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
SQL文を(イメージの)行ごとに発行して、その都度ファイル出力するのが一番楽な方法じゃないかな。(1列目は自分で補完する必要がありますが)
この場合、必ず「Order By dtmSaveday」等して出力順が一定になるようにしてください。
GODさん、お返事ありがとうございます。
行ごとに発行して、その都度ファイルに出力するというのは具体的には
どのような感じなのでしょうか?
1.[dtmSaveday]のデータを取得するSQLを発行
2.取得した結果を、CSV出力
3.[sngWeight]のデータを取得するSQLを発行
4.取得した結果を、CSV出力
5.[sngBodyfat]のデータを取得するSQLを発行
6.取得した結果を、CSV出力
〜
「4」と「6」は追記書込みモード(Append)で出力する。
と言うことだと思います。
GODさん、いなさんありがとうございました。
結局、必要なところだけをループで回して変数に入れることによって解決しました。
解決にチェック入れるの忘れちゃいました。
編集 削除