На самом деле, есть несколько способов сделать это.
Во-первых, вы можете (и должны) просто запустить форму, используя предложение “where”.Это отфильтрует форму.Таким образом, по сути, не используйте формы «фильтр», а используйте выражение «где» при открытии формы.
Если у вас есть несколько текстовых полей и кнопок для «фильтрации» после загрузки формы, затем оставьте источник записи формы пустым, а затем скажите, что для фильтра города:
Dim strSQL as string
strSQL = "select * from MyTable where city = '" & me.txtCity & "’"
me.RecordSource = strSQL
Итак, все, что вам нужно, - это просто удалить источник записи формы, затем получить критерии и затем установитьисточник записи форм, как указано выше.
Как уже отмечалось, вы можете также запросить / получить эти критерии ДО того, как откроете форму, и открытая форма с предложением «где» будет работать с источником данных, связанным с формами, ифильтр будет срабатывать только один раз, и форма будет извлекать только те данные, которые соответствуют предложению where, указанному в команде open form.Этот подход устраняет необходимость устанавливать источник записи форм на лету.
Любой подход будет одноразовым фильтром данных.