MS Access - Создание модуля, который фильтрует подчиненную форму по различным комбинированным спискам с использованием VBA. - PullRequest
1 голос
/ 31 января 2020

У меня есть форма с «некоторыми» выпадающими списками и 1 подчиненной формой, которая в настоящее время фильтруется только выпадающим списком со следующим кодом VBA:

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

Я хочу превратить этот код в модуль, чтобы я мог Вызовите модуль один раз для всех выпадающих списков формы вместо дублирования этого кода для каждого отдельного выпадающего списка.

Как мне этого добиться?!

1 Ответ

2 голосов
/ 31 января 2020

Здесь:

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

Это позволяет вам передать управляющее имя подпрограмме и сделать точно такую ​​же вещь. Тем не менее, вы заметите, что я должен был полностью уточнить форму. Я думаю, что всегда лучше полностью квалифицироваться (особенно по таким причинам, как ваша).

Я также пропустил логи запроса c - либо добавьте его к этому, либо оставьте его в коде, который его вызывает ,

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...