rs.recordcountが遅いかもの件です
5万件ぐらいのテーブルで確認してみました。
where条件にもよるのでしょうけど
rs.Open “select id from テーブル where条件”, cn, adOpenStatic, adLockOptimistic
Debug.Print rs.RecordCount
対
rs.Open “select id from テーブル where条件”,cn, adOpenStatic, adLockOptimistic
rs.Move first
i = 1
Do Until rs.EOF
rs.MoveNext
i = i + 1
Loop
Debug.Print i
はrs.recordcountの2馬身ぐらいで勝ちでしたが
rs.Open “select id from テーブル where条件”, cn, adOpenStatic, adLockOptimistic
Debug.Print rs.RecordCount
対
rs.Open “select id from テーブル where条件”,cn, adOpenForwardOnly, adLockReadOnly
rs.Move first
i = 1
Do Until rs.EOF
rs.MoveNext
i = i + 1
Loop
Debug.Print i
はloopの圧倒的勝利でした。
rs.addnew rs.update など流れの中で件数取得ならrecordcount
件数取得だけが目的ならloopということかな?