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

投稿時間:2006/02/20(Mon) 22:57
投稿者名:やまめ
Eメール:
URL :
タイトル:
CSVファイル内のデータの画面への表示
初歩的な質問で大変恥ずかしいですが、よろしくお願いします。

<やりたいこと>
CSVファイル内のデータをフォームに表形式で表示したい。
データを表上で編集や並び替えをする必要はないが、
外部信号にて、PLCから取り込んだデータを順に追加表示していきたい。
(同時にCSVにも書き込む)

<環境>
WindowsXP、VB6.0、Office2000

<試してみたこと>
まず、CSVファイルを表示するのをサンプル「ADOを使ってCSVファイルをMSHFlexGridに表示する
(284)」を使ってやってみようとしましたが、

(1)MSHFlexGrid1の貼り付け方が分からない・・・(初歩的で本当に恥ずかしいです。そもそも
MSFlexGrid1との違いもよくわかっていません。)

そこで、とりあえず、MSFlexGrid1に書き換えてやってみましたが、

(2)
  Set MSFlexGrid1.DataSource = RS    'MSHFlexGridにデータを代入

にて、「オブジェクト変数またはWithブロック変数が設定されていません。」となり、
うまくいきません。
この前の以下の設定に問題があるのでしょうか。

    'データベースに接続するための情報を設定する
    strProvider = "Provider=MSDASQL;Extended Properties="""
    txtDRIVER = "DRIVER={Microsoft Text Driver (*.txt; *.csv)};DBQ="
    CN.ConnectionString = strProvider & txtDRIVER & FolderName & """"

    CN.Open     'コネクションをオープン

    'Recordsetオブジェクトのオープン
    strSQL = "Select * From " & DataFile
    RS.Open strSQL, CN, adOpenStatic, adLockReadOnly, adCmdText

投稿時間:2006/02/20(Mon) 23:22
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: CSVファイル内のデータの画面への表示
> (1)MSHFlexGrid1の貼り付け方が分からない・・・(初歩的で本当に恥ずかしいです。そもそも
> MSFlexGrid1との違いもよくわかっていません。)
メニューバーの[プロジェクト][コンポーネント]でMicroSoft Hierarchical FlexGrid Control 
6.0 にチェックを入れてください。


> そこで、とりあえず、MSFlexGrid1に書き換えてやってみましたが、
MSFlexGrid では ADO を使っての接続はできません。 DAO の方になります。
(両方のサンプルがあったと思うのですがどちらを使ったのですか)

とりあえず、ADOを使ってCSVファイルをMSHFlexGridに表示する を試して見て下さい。

投稿時間:2006/02/20(Mon) 23:52
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re^2: CSVファイル内のデータの画面への表示
早々にありがとうございます。

MSHFlexGrid1でやってみましたが、20列ぐらいあるはずのデータが3列に。
しかも文字化けした状態で、MSHFlexGrid1に表示されました。

MSHFlexGrid1を貼り付けることができたので、プログラムの内容は、
 サンプル:ADOを使ってCSVファイルをMSHFlexGridに表示する      (284)
と同じとなりましたが、うまくいきません。

カテゴリ別サンプル一覧内のMSFlexGrid関係には、MSFlexGridのセルの設定方法など
サンプルが多いですが、MSHFlexGridでも、見た目(列の幅など)を整えたり、
セルに値を入れる程度のことは同じ方法で行えると思っていていいでしょうか。

ADO+CSVがうまくいかなければ、この中にあるサンプルで、CSVを一行ずつ読んで、
MSFlexGridに設定する方法をとろうかと思いますが。
(データ件数はMAX900行×20列程度です。時間的に問題となるでしょうか。)

投稿時間:2006/02/21(Tue) 00:03
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: CSVファイル内のデータの画面への表示
> MSHFlexGrid1でやってみましたが、20列ぐらいあるはずのデータが3列に。
> しかも文字化けした状態で、MSHFlexGrid1に表示されました。
そのデーターは本当にCSVファイルですか? ファイル名をダブルクリックした
場合 Excelにうまく表示されますか?

20 列 × 900 行位なら処理速度は問題ないかと思うのですが、遅い、早いは主観の違いにも
よりますので....。

MSHFlexGrid でも MSFlexGrid でもそれほど扱い方に違いはないかとデータベースを
扱わないならMSFlexGrid の方が無難かも。

投稿時間:2006/02/21(Tue) 00:13
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re^4: CSVファイル内のデータの画面への表示
>> そのデーターは本当にCSVファイルですか? ファイル名をダブルクリックした
> 場合 Excelにうまく表示されますか?

はい。開けます。
20列×8行ぐらいのデータが、3列×50行ぐらいに。
一行目のみ文字化けして表示され、2行目以降はほとんど空欄です。

> MSHFlexGrid でも MSFlexGrid でもそれほど扱い方に違いはないかとデータベースを
> 扱わないならMSFlexGrid の方が無難かも。

ありがとうございます。MSFlexGridでやってみようと思います。

ありがとうございました。

投稿時間:2006/02/21(Tue) 00:22
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: CSVファイル内のデータの画面への表示
> はい。開けます。
> 20列×8行ぐらいのデータが、3列×50行ぐらいに。

それなら開けるとは言えないのでは、データに問題があるのでは。
メモ帳で見た場合どのようになっていますか?
差し支えなかったら1行分投稿して見て下さい。

投稿時間:2006/02/21(Tue) 08:33
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re^6: CSVファイル内のデータの画面への表示
すみません。言葉足らずでした。
Excelでは、20列×8行全てが見えます。

3列×50行になるのは、Gridに表示したときです。

CSVの内容は、以下の通りですが、一行目は、別途日本語があります。

1,2006/2/20,1051,1,SD295A,1,D10,5,1,2,3,6,0,0,0,0,2,5,1,8,25,150

投稿時間:2006/02/21(Tue) 09:18
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
CSVファイル内のデータの画面への表示
文字化けしたデータはメモ帳では正常に表示されていたのでしょうか?

VB 上で正常に表示される文字コードのデータであれば、ADO での読み込み時に
データ型をSCHEMA.INI ファイルを使って文字列型に指定して読み込んで見て下さい。
SCHEMA.INI ファイルについては、サンプルの下部に書いてあったと思うのですが。

投稿時間:2006/02/21(Tue) 21:57
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re: CSVファイル内のデータの画面への表示
> 文字化けしたデータはメモ帳では正常に表示されていたのでしょうか?

はい、メモ帳でもExcelでも表示されます。

> データ型をSCHEMA.INI ファイルを使って文字列型に指定して読み込んで見て下さい。

過去ログを参考にやってみましたが、状況は変わりませんでした。
今回のプログラムでは、CSVファイルを月毎に変えていくので、
その都度、SCHEMA.INIファイル自身も更新しなくてはいけなさそうなので、
ADOの利用はあきらめようかと思います。

ありがとうございました。