2015-03-25 3 views
0

У меня есть форма под названием ClientSearch, которая обеспечивает основной поиск на трех полях в Клиентов Таблицы и отображают результаты. Эта форма привязана к таблице . Таблица (для формы записи выбрано значение «Клиент»). Для поиска в Клиентов стола, мой код использует DoCmd.ApplyFilter команды в обработчик событий для кнопки поиска.Access 2010: Встраивание формы в навигационной форму

Я тогда сделал навигационную форму и перетащил ClientSearch форму в одном из своих категорий.

Теперь, когда я нажимаю кнопку поиска, моя DoCmd.ApplyFilter больше не работает. Я получаю ошибку времени выполнения, сообщающую мне, что моя форма не привязана к конкретной таблице, которая истинна. Форма навигации не привязана к каким-либо таблицам, и ее не может быть, так как на ней будут несколько встроенных форм для разных таблиц и запросов. Как решить эту проблему? Кажется, что Access и VBA не знают, какую таблицу использовать для ApplyFilter запрос.

ответ

0

Обычно, поиск людей заключается в создании запроса, содержащего поля с критериями, относящимися к другому текстовому полю. например, критерии [Имя] может быть:

Like [Forms]![frm_RecordSearch]![txtFirst] & "*" 

Это покажет все результаты, если текстовое поле пустым, и позволяют людям искать на основе частичного совпадения. Оттуда все, что вам нужно сделать, это создать форму, основанную на запросе, и иметь форму с критериями поиска, которые вызывают форму отображения. Это автоматически сортирует его. Если вы хотите, чтобы избежать закрытия формы каждый раз, когда вы повторите поиск вы можете также использовать Me.requery, например, с двумя формами в форме поиска будет выглядеть следующим образом:

Private Sub cmdb_search_Click() 
If CurrentProject.AllForms("frm_SearchResults").IsLoaded Then 
Forms![frm_SearchResults].Form.Requery 
Else 
DoCmd.OpenForm "frm_SearchResults" 
End If 
End Sub 

Как вы можете использовать подобную технику для сортировки с использованием подформы, хотя там, где подформация является результатом, а текстовые поля/поля со списком и т. д. содержатся в основной форме и имеют послепродажное обновление или кнопку поиска и т. д., которые запускают поиск. Недостатком этого метода является то, что форма не может быть непрерывной, насколько я знаю, но вы все равно можете получить хороший результат таким образом.

Я надеюсь, что это поможет. Дайте мне знать, если что-то неясно!

Смежные вопросы