これには 2 つの方法があります。どの方法を使用するかは、移動するデータの量などの要因によって異なります。
例として、ShipDate というフィールドがあり、6 月 1 日から 6 月 10 日までの間に出荷されたものをすべて表示したいとしtxtStartDate
ますtxtEndDate
。
使用するFilter
Reports![MyReportName].RecordSource = "MyQuery"
Reports![MyReportName].Filter = "ShipDate BETWEEN #" & txtStartDate & "# AND #" & txtEndDate & "#"
Reports![MyReportName].FilterOn = True
- 肯定的: 変更するだけで済み
Filter
、FilterOn
- 否定的: (私はこれについて誤解している可能性があります。間違っている場合は誰かが私を訂正してくれることを願っています)データがデスクトップではなくネットワーク上の場所にある場合、実際にはクエリ全体をコンピューターにプルしてから、画面でフィルタリングしています。 .
SQL 文字列の編集
strSQL = "SELECT ShipDate FROM MyTable WHERE ShipDate BETWEEN #" & txtStartDate & "# AND #" & txtEndDate & "#"
Reports![MyReportName].RecordSource = strSQL
- 正: 表示に必要な最低限のレコードのみを取得する - 負: クエリ文字列を作成し、RecordSource
数百を超えるレコードを返すクエリを使い始めるまで、私は個人的にフィルター メソッドを使用します。約 5 万件のレコードを返すクエリを実行したとき以外は、2 つの方法の間に大きな時間差はありませんでした。