簡體   English   中英

MS Access - 創建一個模塊,使用 VBA 通過不同的組合框過濾子表單

[英]MS Access - Creating a module that filter subform by different comboboxes using VBA

我有一個帶有“一些”組合框和 1 個子表單的表單,該表單當前僅由帶有以下 VBA 代碼的組合框 1 過濾:

Private Sub cmbType_AfterUpdate()

Dim strSQL As String

strSQL = "SELECT [qryStore].[Type], [qryStore].[Model], [qryStore].[SN], " _
& "[qryStore].[ID], [qryStore].[Position], " _
& "FROM qryStore " _
& "WHERE (((qryStore.Type)='" & Me.cmbType & "'));"

Me.subfrmStore.Form.RecordSource = strSQL
Me.subfrmStore.Form.Requery

End Sub

我想在模塊中轉換此代碼,以便我可以為表單的所有組合框調用該模塊一次,而不是為每個單獨的組合框復制此代碼。

我怎樣才能做到這一點?!

這里:

Public Sub UpdateSubFormFromControl(ByRef ControlName as String)

    Dim strSQL As String
    strSQL = "SELECT [qryStore].[Type], [qryStore].[Model], [qryStore].[SN], " _
    & "[qryStore].[ID], [qryStore].[Position], " _
    & "FROM qryStore " _
    & "WHERE (((qryStore.Type)='" & Forms!MyFormName.Controls(ControlName).Value & "'));"

End Sub

這允許您將控件名稱傳遞給 sub 並執行完全相同的操作。 但是,您會注意到我必須完全限定表格。 我認為始終完全符合條件是一種更好的做法(特別是出於像您這樣的原因)。

我還省略了重新查詢邏輯 - 將其添加到此或將其保留在調用它的代碼中。

享受!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM