ADOを使ってCSVファイルを読込
                                                         玄関へお回り下さい。
ADOを使ってCSVファイルをMSHFlexGridに表示する      (284)
FormにMSHFlexGrid1とCommand1を貼り付けておいて下さい。
カンマ区切りの Test.csv ファイルをプログラムと同じフォルダーに準備しておいて下さい。
参照設定で Microsoft ActiveX Data Objects 2.5 Libraryにチェックを入れておいて下さい
   Option Explicit   'SampleNo=284 WindowsXP VB6.0(SP5) 2003.04.17

Private Sub Command1_Click()
  Dim CN As New ADODB.Connection, RS  As New ADODB.Recordset
  Dim FolderName As String, txtDRIVER As String
  Dim DataFile  As String, strSQL  As String
  Dim strProvider As String

  Screen.MousePointer = vbHourglass
  MSHFlexGrid1.Clear
  DoEvents


  FolderName = App.Path    'データのあるフォルダーを取得
  DataFile = "Test.csv"    'データファイル名を取得

  'データベースに接続するための情報を設定する
  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
  Set MSHFlexGrid1.DataSource = RS  'MSHFlexGridにデータを代入

  'Recordset・Connection を閉じる
  RS.Close
  CN.Close

  '参照を解放。
  Set RS = Nothing
  Set CN = Nothing
  Screen.MousePointer = vbDefault
End Sub
 
掲示板に投稿があって、試してみたらかなり高速に読込表示でき ADO+MSHFlexGrid+CSV の
組み合わせは結構使えるかなと思い紹介します。
私も今回初めてADOを扱いました。色々調べた結果を下記に書き留めておきます。

ODBC接続

Provider=MSDASQL      使用するデータベースの種類

Extended Properties=""    ODBC ドライバーのための設定は、Extended Properties = に一括し                  て与えます。これらを一まとめにするために、" (ダブルクォーテーション)                   が利用されます。 上のコードでは、文字列の中に入る " をエスケー                   プするために二重に記述しています"

DRIVER={Microsoft Text Driver (*.txt; *.csv)}    ODBCドライバー名

DBQ=FolderName        ODBCドライバーを使って接続するデータベースファイル名(フォルダー名)

Data Source           使用するデータベースファイル名

User ID              データベースに接続する時に使用するユーザー名

Password             データベースに接続する時に使うパスワード

FILE NAME            データベースへの接続情報指定したデータリンクファイル名

DSN                データベースへの接続情報指定したODBCデータソース名

Location              接続先のサーバー名

-------------------------------------------------------------------------
Open メソッド
構文
Recordset.Open Source, ActiveConnection, CursorType, LockType, Options
実文
RS.Open strSQL, CN, adOpenStatic, adLockReadOnly, adCmdText

Recordset       Recordsetオブジェクトを表すオブジェクト変数 (RS)
Source         省略可能です。データを取得するテーブル名又はSQLステートメント
             (strSQL = "Select * From " & DataFile

ActiveConnection   省略可能です。接続中のデータベースを表すオブジェクト変数 (CN)

CursorType       省略可能です。カーソルタイプ(下記定数より選択)
      定 数            説   明
   adOpenForwardOnly   デフォルトの値です。前方スクロール タイプ カーソルを開きます。
   adOpenKeyset       キーセット カーソルを開きます。
   adOpenDynamic      動的カーソルを開きます。
   adOpenStatic       静的カーソルを開きます。

LockType         省略可能です。ロックタイプ(下記定数より選択)
      定 数             説 明
   adLockReadOnly     デフォルトの値です。読み取り専用 ― データの変更はできません。
   adLockPessimistic    レコードごとの排他的ロック ― 通常、編集の際にプロバイダーがデー
                  タ ソースでレコードをロックすることにより、確実にレコードを編集で
                  きるために必要な最小限のロックを使用します。
   adLockOptimistic     レコードごとの共有的ロック ― Update メソッドを呼び出した場合の
                  み、プロバイダーが共有的ロックを使用してレコードをロックします。
   adLockBatchOptimistic  共有的バッチ更新 ― 即時更新モードに対して、バッチ更新モード
                  の場合に必要です。

Options          省略可能です。Source 引数が Command オブジェクト以外の設定値を表
              す場合、または以前に保存していたファイルから Recordset を復元する
              場合に、プロバイダーが引数を評価する方法を示す

IMEX=
  0 is Export mode
  1 is Import mode
  2 is Linked mode (full update capabilities)

詳しくはヘルプ等を見て下さい。
DAO同様読込ファイルの型指定は SCHEMA.INI ファイルを使用する事でできます。SCHEMA.INI については http://www.akj.co.jp/aug/qa/ans0001-0050/0315.html を参考にして下さい。
   






2003/04/20