Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

SQLite For ExcelでSelect文のデータ件数を取得する方法

SQLite For ExcelにはADODB.RecordsetにあるようなCountプロパティがない。

ところがちょっとした工夫でデータ件数を取得する方法を見かけたので備忘録。

なぜレコード件数を取得するかと言うと、SQLiteから取得したデータを配列に転記するため。
取得したデータ件数を元に配列の要素数を予め決めておきたいから。

従来の対応

  • レコードのカーソルを移動するたびにRedim Preserveで配列拡大(予め取得することをしない)
  • 一度BOFからEOFまで回してレコード件数を取得
  • 外部からSQL分を受け取る時にWhere部分以前と以降を分けて取得する
    • where 以降の文でSelect Count(*)を実行して件数を取得

サブクエリ化

単純に外部から取得したSQL分をサブクエリ化するだけです。

select count(*) from (外部から取得したSQL文)

上記従来の対応の3番目とやってることはほぼ同じです。
この後に元のselect文を実行するので処理速度に悪影響があります。

しかし都度配列を拡張するよりかは速度は速いですしコードもスッキリします。