2016-03-18 48 views
-1

這裏MS Access新手幾乎沒有VBA/SQL經驗。如何創建包含報告篩選器選項的彈出窗口

我創建了一個數據庫,其中包含表格,查詢,表單和報告,這些數據庫除了幾個我選擇的東西外,都能很好地協同工作。

更改爲以下方法的目的:目前,我創建了3種主要報告類型,每種報告都有不同的過濾器選項。 AKA:即使報告包含相同的根信息,也有單獨的報告顯示每個不同的過濾器選項。如果有1份報告允許用戶過濾/分組/排序多種方式來簡化報告流程,那將是非常好的。

我想在我的Reports窗體上有一個'Filter'按鈕,打開一個彈出窗口,其中包含通過組合框的過濾器選項。爲了澄清 - 彈出式窗體已創建,我可以輕鬆地將「過濾器選項」按鈕添加到打開彈出式窗口的報告窗體中。

彈出窗體包含組合框,其中包含與報表從主表上的字段名稱相關的控制源,以及用於'關閉','應用過濾器'和'清除過濾器'的按鈕。

我需要幫助:讓組合框提供選項以及獲取「應用過濾器」按鈕以實際工作。過濾器選項需要從其中一個主表中的字段中拉出,而不允許輸入文本。

「應用過濾器」按鈕,需要做到以下幾點:

  • 每個組合框中選擇應用過濾器。如果用戶選擇,則需要將過濾器留空。
  • 給出用戶報告的W /應用過濾器

如果不是找到一個回答這個問題的資源的預覽,我會衷心感謝方向去哪裏或誰可以幫助!

+2

歡迎來到Stack Overflow。我們是一羣學生和專業人員,他們互相幫助解決*特定問題。你所要求的更復雜。請回來一個*特定*問題,我們會盡全力。例如,「我在TableY中使用了FieldX中的FieldX作爲我的組合框的源代碼,下面是我嘗試過的代碼,但它不工作,有人可以幫忙嗎?」這裏沒有人會爲你完成整個項目,實際上有一個「投票結束」原因,你的問題可能會被關閉。 –

回答

0

你真正想要做的是關閉報告並使用過濾器和預覽選項重新打開它。看看DoCmd.OpenReport。您必須根據用戶選擇的內容將篩選器轉換爲SQL語言篩選器,但其他一切都非常簡單。

+0

我在這裏可能是一個失敗的原因,但是如何將過濾器轉換爲SQL? – Finch

+0

您創建一個字符串,就好像它是SQL中的WHERE子句並將其傳遞給OpenReport函數。這確實意味着您至少需要SQL語言以及Access VBA的基本知識。 – SunKnight0

+0

也許在報表的SQL中,如設計視圖的記錄源中,選擇類型爲報表,則可以將其他表單的下拉選擇添加爲SQL的條件 – Clyde

0

所以我會工作的方法就是建立一個準則與參數的形式查詢周圍的彈出式窗口形式的組合框 ![QueryCriteria

然後在表格的VBA我會寫:

Private Sub Filter1_AfterUpdate() 
    DoCmd.Close acReport, "Rpt2_FWItemsDue_AllSubs" 
    DoCmd.OpenReport "Rpt2_FWItemsDue_AllSubs", A_PREVIEW 
    DoCmd.Maximize 
End Sub 

假設控件的名稱爲「Filter1」,表單名稱爲「Rpt2_FWItemsDue_AllSubs」,「Filter1」過濾報表中的「FW_SubName」。