![](/img/trans.png)
[英]Referencing a Subform's Subform Control in another Module 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.