2012-05-03 96 views
2

這裏是我做了什麼:MS Access參數查詢將不打印

我創建一個參數查詢,其中crtiterias之一[開始日期]和[結束日期]之間。然後,我將該參數查詢與其他綁定字段一起放入並創建一個子表單。到目前爲止,沒有問題,它的效果很好。

但是,在打印或嘗試將表單轉換爲PDF時,我遇到了問題。例如,一旦我要求它打印,參數查詢中的彈出窗口就會彈出,再次詢問我的日期,即使在我再次輸入它們之後,它仍會多次詢問我並取消打印作業。

當我試圖打印屏幕上的內容時,如何保持查詢本質上正常運行?如果我正在嘗試創建PDF,則會發生同樣的情況。

回答

1

在我不那麼謙虛的意見中,參數在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財產。

+0

謝謝你的迴應。我檢查了你給出的鏈接,但我不清楚它會做什麼以及在哪裏實施。我對實施後端解決方案不太熟悉。你能解釋一下嗎?謝謝! –