Если вы хотите заставить пользователей фильтровать форму, прежде чем показывать какие-либо результаты, не связывайте SubForm с запросом (оставьте RecordSource
формы пустым) и делайте это вместо этого в коде: вы можете просто установить это в своем Событие нажатия кнопки поиска:
Me.Sub.RecordSource = "subResultType_1"
Еще приятнее, сделайте Subform невидимой (установите ее свойство Visible = No
в режиме разработки) и покажите ее, как только пользователь нажмет Поиск:
Private Sub btSearch_Click()
Me.Sub.RecordSource = "subResultType_1"
Me.Sub.Visible = True
End Sub
Если вы хотите сделать более сложные фильтры, вы также можете сделать что-то вроде:
Private Sub btSearch_Click()
Me.Sub.RecordSource = "SELECT * FROM subResultType_1 WHERE " + strWhere
Me.Sub.Visible = True
End Sub
Нечто подобное позволит вам строить сложные WHERE
запросы из кода, основываясь на множестве входных данных от пользователя.
Например, у вас может быть несколько текстовых полей, в которые пользователь может вводить информацию относительно определенных полей, чтобы сузить поиск.
Затем вы строите предложение WHERE из содержимого этих текстовых полей, например:
Это происходит, когда пользователь ввел некоторые критерии фильтрации: