2014-02-12 21 views
0

我在Access 2010中有一個報告查詢,可以讓用戶查看今天即將推出的估計貨件的預測。用戶對我的要求是,我製作一個表格,允許他們查看整個星期(週一至週五)的預測,或者他們可以選擇一個日期,然後查看該未來日期的預測。從表格中選擇一天以更改條款

所以基本上我想製作一個表格,用戶可以選擇星期幾或使用日期選擇器來選擇特定的日期。然後利用vba更改我的SQL的where子句以生成當天的報告。

我的假設是使用一個列表框填充星期幾,但由於某種原因,我覺得我接近這個錯誤。任何關於接近開發這個的指導或建議。

更新** enter image description here

我影像尺寸道歉。就像我說過的,我希望用戶在列表框中選擇星期幾,然後當他們點擊查看查詢時,它會根據所選值更改where子句。

+0

我喜歡DatePicker的想法。有了列表框,他們還必須選擇一週或某事。 – Kapol

回答

0

使用DatePicker。所有你需要做的是在SQL得到建有像這樣的即時:

Dim strSQL as String 
Dim qd As QueryDef 

strSQL = "SELECT * FROM MyTable WHERE MyDateField = '#" & Me.txtMyDate & "#'" 

Set qd = CurrentDB.CreateQueryDef("MyReportQuery", strSQL) 

您現在應該有一個名爲MyReportQuery查詢,您可以作爲記錄源用於報表。好消息是,您可以對RecordSet名稱進行硬編碼,因爲每次運行時都要重新創建它。只是不要忘記在這個檢查中加入一些代碼來查看查詢是否已經存在,如果是的話就刪除它。

編輯:爲了記錄在案,許多訪問MVP的實際建議你這樣做,刪除現有查詢:

On Error Resume Next 
CurrentDB.QueryDefs.Delete "MyReportQuery" 
On Error GoTo 0 ' or your own error-handler 

如果查詢存在,它將被刪除。如果沒有,則繼續下一步將強制代碼忽略錯誤並繼續。然後,您將On Error重置爲您自己的錯誤處理程序。如果你的代碼中沒有錯誤處理程序,那麼你做錯了。 :o)