2017-03-05 46 views
0

我試圖創建一個報告,在給定的一天拉取所有交易,並且當我能夠生成一個靜態報告(我隨機選擇一個賬戶,並拉任何日期的所有交易)時,我需要能夠允許用戶輸入,以便用戶可以選擇他們希望看到所有交易的日期。我會如何去做這件事?如何使用用戶輸入創建基於查詢的報告?

見下面示例表...

TRANSACTIONS 

ID|DATE  |STORE_ID |ACCT_ID 
--+-----------+---------+--------- 
1| 02/07/2017|  113| 1005 
2| 02/01/2017|  557| 1003 
3| 02/04/2017|  224| 1000 
4| 02/07/2017|  678| 1005 
5| 02/09/2017|  579| 1003 
6| 02/11/2017|  678| 1000 
7| 02/07/2017|  900| 1005 

提前感謝!

回答

1

這正是表單的用途。基本上,表單有一個或多個用戶用來指定各種標準的「控件」。然後他們點擊一個按鈕(另一種控制),該按鈕打開基於引用這些表單控件的查詢的報告,例如,

SELECT * FROM tblTransactions 
WHERE ACCT_ID = Forms!MyForm!ctrlAccountID AND 
[DATE] < Forms!MyForm!ctrlDate; 

您可以根據需要佈置表格和報告。 Access有一個窗體嚮導,可以幫助您對窗體進行佈局,創建按鈕只需要添加該控件,然後雙擊該按鈕打開VBA窗口,在其中添加如下代碼:

DoCmd.OpenReport "myReport", acViewReport 

我創建了一個imgur album顯示該過程。另外,這裏是my example Access file

+0

感謝那個例子,威爾。我想知道,而不是查詢引用表單的報表(感覺錯誤有這樣的硬依賴關係),是否有一個模式傳遞帳戶ID和日期值作爲參數? –

+0

查找查詢參數你會發現很多。你也可以這樣做,但是如果你的查詢只會被這個表單使用,那麼Will的答案看起來很好.. –

+0

當然,你可以讓報表的查詢有未指定的參數,當你打開時報表會詢問你它。例如,如果報告的記錄來源是「SELECT * FROM Transactions WHERE ACCT_ID = [請輸入您的帳戶ID]」,您將在報告打開時收到提示,要求您輸入帳戶ID。你可以爲日期做同樣的事情。但是,您對用戶輸入的控制較少,提示的外觀如何等等。 –