Filterの件数ですが、0以上の数値が入っているフィールド「Field1」に対して. > > 現状は、OpenしてFilterの手順で絞り込んでいるのですが、 > > やはり遅いのでしょうか? > .Filterは遅い。 > やはり、クエリーの条件で絞る方が良いです。 私も同意見です。 また、フォームのレコードソースは空にして、Form_Loadで とした場合、当然rst.Recordset.RecordCountはFilter,Sort前後では変わらず120件ほど. Recordsetを配列として使う方法. 01.Filterプロパティ Filterプロパティを設定すると,指定した条件を満たすレコードを抽出できます。抽出されたレコード件数は、RecordCountプロパティの値で取得できます。 【書式】recordset.Filter = criteria recordset:開いているRecordsetオブジェクト criteria:抽出条件を表す文字列式 Recordset オブジェクトの Sort プロパティを使用してデータベースのレコードを並べ替える Sort プロパティを使用するには、CursorLocationプロパティを adUseClient に設定します (※ CursorLocationプロパティのデフォルト値は、adUseServer です) VB6.0+ADO2.7で、mdbファイルを扱っています。.filterプロパティを使ってabcフィールドの値がnullまたは空のテーブルを抽出したくrecordset.filter="abc= null or abc=''"としました。この場合は問題ないのですが、更にdefフィールドの条 Q_CCというクエリーのフィールドにIDがあります。あるフォームのボタンのイベントプロシージャにSet db = CurrentDb()Set rs = db.OpenRecordset("Q_CC", dbOpenDynaset)rs.Filter = "ID = 'Me.メールID'"としましたけど、フィルターが働 VBの標準装備のコレクション関連機能は、Collectionオブジェクトと動的配列の2つしかない。 動的配列は伸縮自在でデータを追加してゆくには比較的簡単だし、文法的にVBにマッチしているので扱いやすい。 Filterプロパティを設定することで、指定した条件のレコードを抽出することができます。 抽出されたレコード件数は、RecordCountプロパティの値で取得できます。 書式: Recordset.Filter = 抽出条件 rst.Filter = "Field1>=0" rst.Sort = "Field1" Set Me.Recordset = rst . 抽出条件を指定し、CopyFromRecordsetで一気に読み込む時間と、セルの行列を指定し1件ずつ読み込むのとではどれくらい時間の差があるのか調査してみます。時間計測は、2000件登録済みの顧客マスターを使用しました。