2009-05-28 48 views
2

問候,導出使用訪問查詢與參數

我有使用內置的參數(例如,[開始日期])以提示用戶在查詢被跑到輸入日期參數​​的訪問的查詢爲文本。

在大多數情況下,這工作今天除了罰款我試圖查詢導出到一個文本文件,我收到了一個錯誤:

Too few parameters. Expected 2.

這是有道理的,因爲在查詢兩個參數[開始日期]和[停止日期],它出錯的原因是我永遠不會提示我提供一個值。

如果我導出到Excel這工作正常,只是沒有文本文件。

有關如何解決此問題或允許我將查詢導出到文本文件的任何建議?

謝謝

Brett

例Access查詢:

SELECT PR_EARN.Emp_No, PR_EARN.Pay_Code, PR_EARN.Hours, PR_EARN.Rate, PR_EARN.Pay_Amt, PR_EARN.Pay_Date 
FROM PR_EARN 
WHERE (((PR_EARN.Pay_Date) Between [Start Date] And [End Date])); 

回答

1

創建一個名爲新出口形式。將兩個文本框放在窗體上,並將它們命名爲StartDate和EndDate。保存表單。更改您的查詢閱讀以下內容:

SELECT PR_EARN.Emp_No, PR_EARN.Pay_Code, PR_EARN.Hours, PR_EARN.Rate, PR_EARN.Pay_Amt, PR_EARN.Pay_Date 
FROM PR_EARN 
WHERE (((PR_EARN.Pay_Date) Between Forms!Export!StartDate And Forms!Export!EndDate)); 

通過雙擊打開窗體。填寫兩個日期字段,並讓表單繼續運行。以通常的方式導出您的查詢。

+0

確定這是有道理的,但什麼是疼痛的屁股。這是MS Access的錯誤,它不提示輸出文本嚮導中的參數? – Brettski 2009-05-29 05:49:58

+0

提示參數事實上只是Access UI的一個怪癖。它知道如何處理缺少的參數,導出文本嚮導不會。在真實的Access應用程序中,會編寫一些將參數值直接插入到查詢中的代碼。 – 2009-05-29 06:23:51

2

一對夫婦更多的方法:

  • 有一個在微軟的KB269671給出一個解決方法。
    基本上,您必須使用具有特殊語法的中間查詢。

  • 您還可以將查詢更改爲使表查詢然後導出其數據。

  • 使用和其中RecordSource設置爲查詢,然後它的FormLoad事件導出窗體爲文本,然後關閉窗體的中間隱形數據表窗體。
    只要打開表格就會提示用戶輸入參數,然後自動保存。

Robert's answer可能仍然是最簡單的一個。

0

我能夠通過使用eval函數來解決這個問題。因此,而不是:

Between [Forms]![Reporting Import and Export]![date_exportstart] And [Forms]![Reporting Import and Export]![date_exportend] 

使用Eval

Between Eval("[Forms]![Reporting Import and Export]![date_exportstart]") And Eval("[Forms]![Reporting Import and Export]![date_exportend]")