[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/07/25(Tue) 21:02
投稿者名:satsuwan
Eメール:
URL :
タイトル:
1秒ごとに取得したデータをなるべく安全に保存したい
はじめまして。VB6.0に関する質問です。
基本的なプログラムの概要は、
『RS232Cを介して装置とPCで送受信し、受信データを1秒ごとにエクセルに書き込ませる。』
といったものです。
このデータの保存方法に関する質問です。

今は、
  Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Sheets(1)
  xlApp.Visible = False
    xlSheet.Cells(1, 1) = Date
      ・
      ・
上記のようにエクセルを開き、情報を書込みます。
それから、タイマーコントロールを使って1秒ごとにセルに一行ずつデータを書き足します。
そして、『記録終了ボタン』を押すと、
  S = Format(Now, "yy年mm月dd日_hh時nn分ss秒")
    SaveName = "C:\" & S & ".xls"
    xlSheet.SaveAs SaveName
    xlApp.Quit
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
で、エクセルを保存して閉じています。ですが、
これだと記録終了ボタンを押すまで、開いたままのbook1にデータが保存されていくので、
万が一パソコンの電源が落ちてしまった場合にデータが残らないですよね。
かといって、一秒ごとにエクセルを開いたり閉じたりすると、
処理が間に合わなくなってしまいます。
データをなるべく多く残すために、なにか良い方法はありませんか。

投稿時間:2006/07/26(Wed) 00:14
投稿者名:
Eメール:
URL :
タイトル:
Re: 1秒ごとに取得したデータをなるべく安全に保存したい
> これだと記録終了ボタンを押すまで、開いたままのbook1にデータが保存されていくので、
> 万が一パソコンの電源が落ちてしまった場合にデータが残らないですよね。
> かといって、一秒ごとにエクセルを開いたり閉じたりすると、
> 処理が間に合わなくなってしまいます。
> データをなるべく多く残すために、なにか良い方法はありませんか。
直接エクセルをバッファとしているのが問題だと思います
データベースの使用や、もしくは中間にCSVファイルとして書き出して後で一括でエクセルファイルに書
き出すなどをすればイイのでは?

投稿時間:2006/07/26(Wed) 09:00
投稿者名:satsuwan
Eメール:
URL :
タイトル:
Re^2: 1秒ごとに取得したデータをなるべく安全に保存したい
返信ありがとうございます。
CSVファイルに書き出してみます。

投稿時間:2006/07/26(Wed) 13:16
投稿者名:satsuwan
Eメール:
URL :
タイトル:
Re^3: 1秒ごとに取得したデータをなるべく安全に保存したい
CSVファイルに書き出した方が、エクセルを開くより断然スムーズですね。
エクセルを開いて書込むプログラムは結構苦労して作成したのですが、
最初からCSVファイルに書き込ませれば良かったです・・・。
ありがとうございます。