2014-11-08 75 views
0

我已經在ms access 2010中編寫了一個sql查詢,該查詢計算每月查詢,並輸入月份參數。它返回2列 - 月份名稱和該月份的每月總查詢。MS Access 2010將計數結果鏈接到單個記錄

SELECT Format([DateOfEnquiry],"mmmm") AS [Month], Count(T_Enquiry.[DateOfEnquiry]) AS TotalMonthlyEnquiries 
FROM T_Enquiry 
GROUP BY Format([DateOfEnquiry],"mmmm") 
HAVING (((Format([DateOfEnquiry],"mmmm"))=[Enter full name of month])); 

運行此查詢後,是不是就有可能在TotalMonthlyEnquiries列點擊的價值,並獲得運行另一個查詢它返回對應於該值的個體記錄(領域,如FamilyNameFirstNameEmailPhoneDateOfEnquiry from T_Enquiry)?如果可能的話,ms access 2010將如何實現?

回答

0

在2007年做過這件事,但如果不相同,應該非常相似。用上面的方法創建一個查詢(本例中爲Query1)。創建另一個查詢,它將您要從T_Enquiry(FamilyName,FirstName,Email,Phone,DateOfEnquiry)獲取的詳細數據作爲Query2抓取。

基於Query1創建數據表表單(本例中稱爲frmQuery1) - 我只是使用表單嚮導來節省時間。打開表單進行編輯,然後右鍵單擊TotalMonthlyEnquiries文本框並轉到Properities。在格式選項卡,設置DisplayAsHyperlink爲Always(這將指示用戶,他們可以點擊鏈接上的OnClick甚至在文本框中,輸入以下代碼:。

Private Sub TotalMonthlyEnquiries_Click() 

    DoCmd.OpenForm "frmQuery2", acFormDS 

    Forms!frmQuery2.Filter = "Format([DateOfEnquiry], ""mmmm"") = '" & Me![Month] & "'" 
    Forms!frmQuery2.FilterOn = True 

End Sub 

保存frmQuery1創建另一個WIZARD- (詳細數據),並將其保存爲frmQuery2

現在打開frmQuery1 - 你將被要求提供一個月,當你這樣做和數據表出現時,量化應該超鏈接。超鏈接和frmQuery2應該打開與有關月份的數據。

只是一個簡單的開放並且將值(在本例中爲月份名稱)從第一個表單傳遞到第二個表單作爲過濾器參數。有更復雜的方法來做到這一點,但這是最簡單的方法之一。祝你好運。

+0

在Access 2010中完美地工作。這是一個非常簡單的過程。我現在在整個數據庫中都有其他可能的用法。 – Novo003 2014-11-11 23:01:19

+0

很高興能滿足您的需求。如果是這樣,請標記爲答案,以便如果另一個人來了,他們知道它的工作,並可以實施! – VBlades 2014-11-12 20:31:50

+0

在使用此技術進行測試過程中,遇到以下情況:1.在FamilyName字段中單擊超鏈接名稱時,Access 2010會提示用戶輸入參數值。 2.如果單擊「確定」或輸入參數,則代碼正確執行。 3.如果單擊「取消」,MS Visual Basic將返回錯誤消息「運行時錯誤2501. OpenForm操作已取消」如果用戶單擊時是否存在「Else」語句或其他代碼以取消該過程'取消'?那會是什麼? – Novo003 2014-11-18 06:19:08

相關問題