で
おかげで使用できるのであれば、おそらくいずれかの方法を使用して、パフォーマンスを向上させることができ、それを行うには、レコードセットにfor loops
を使用しますが、その記事を見ていますしかし、Dcount関数は非常に簡単です:
PaidInvoiceCount = DCount("*", "InvoiceTable", "[Status] = 'PAID'")
あなたが提供されたリンクのメソッドがテーブル定義だけのためのものであり、非常に高速です:
Public Function CountRecords()
Dim lngCount As Long
Debug.Print Timer
lngCount = OpenDatabase("d:\path\test.mdb").OpenRecordset("InvoiceTable").RecordCount
Debug.Print Timer
End Function
あなたは、レコードセットを使用するために、これを変更することができます。
Public Function CountRecords()
Dim rs As DAO.Recordset
Dim lngCount As Long
Debug.Print Timer
Set rs = OpenDatabase("d:\path\test.mdb").OpenRecordset("Select * From InvoiceTable Where [Status] = 'PAID'", dbOpenSnapshot)
rs.MoveLast
lngCount = rsFilter.RecordCount
Debug.Print Timer
rs.Close
Set rs = Nothing
End Function
しかし、それはDcount関数よりも速く実行されません。
なぜあなたはそれを試してみませんか? – blckbird
申し訳ありません..言及するのを忘れました..可能なら、どうですか? (私はそれを試してみる方法がわかりません) – Wayne
デザインやSQLのクエリに条件を追加することができます。これにより、必要な 'WHERE'節を制御することができます。クエリをレコードセットとして開きます。 – LiamH