在我不那麼謙虛的意見中,參數在MS Access中處理得不好。
我認爲只要運行它(除非它是一個實驗性的查詢),就不得不在查詢中輸入值。如果您可以傳遞參數,那麼自動化報告會更容易。
通常情況下,我創建一個沒有查詢的WHERE子句中的參數的報告,然後在自己的通行證,大幹快上Remou's answer here
你也可以打電話之前更改查詢在報告中加入where條件它,但這是非常hackey。
- 編輯 -
我看到了混亂。我解釋了你在做什麼作爲報告(而不是表格)。
可能發生的事情是,當它試圖呈現/格式化打印作業時,它不得不對錶單的記錄源進行多次調用。這就是爲什麼它不斷詢問你的數據。
從我在你的問題明白了,你有一個查詢,看起來像這樣:
select foo
from bar
where
yaddah_date between [Start Date] and [End Date]
然後你使用該查詢作爲您想後打印窗體的記錄源作爲PDF。首先你應該創建一個類似於這種形式的報告。然後打開報告上有一個過濾器打印:
DoCmd.OpenReport "myReport", , , , _
"yaddah_date between " & txtStartDate & _
" and " & txtEndDate
(最後一部分基本上是過濾器/ where子句該報告將適用於正在生成的數據查詢的結果)。
如果必須打印表格,你可以做類似的
DoCmd.OpenForm "foo", acNormal, , _
"yaddah_date between " & txtStartDate & _
" and " & txtEndDate
的東西,也可以設置窗體/子窗體的filter
財產。
謝謝你的迴應。我檢查了你給出的鏈接,但我不清楚它會做什麼以及在哪裏實施。我對實施後端解決方案不太熟悉。你能解釋一下嗎?謝謝! –