Фильтрация форм в MS Access - PullRequest
0 голосов
/ 09 июня 2010

У меня есть простая форма, показывающая продукты из моей базы данных.Каждый продукт имеет внешний ключ для factory_id.Я хотел бы отфильтровать мою форму по factory_id вместо стандартного product_id.Как я могу это сделать?Я знаю, что должен создать макрос.Также я уже создал запрос, который принимает имя производителя в качестве аргумента и возвращает factory_id.Так что в основном все должно работать так, что когда я нажимаю кнопку «Фильтр» в моей форме, запускается макрос, который открывает мой запрос с запросом имени производителя.И когда возвращается имя, фильтруется вся форма (поэтому где-то должно быть сравнение между product_id в продукте и тем, что возвращено из запроса, но я не могу этого сделать).Я использую доступ 2007.

Модель:
альтернативный текст http://img266.imageshack.us/img266/6025/drawing1x.png

1 Ответ

0 голосов
/ 10 июня 2010

Это базовая идея для того, что вы будете использовать для фильтрации во время выполнения. Один устанавливает фильтр, другой удаляет фильтр.

Private Sub cmdFilter_Click()
    strFilter = InputBox("Please type an manufacturer ID:", "Filter Criteria")
    Me.FilterOn = True
    Me.Filter = "[manufacturer_id] = '" & strFilter & "'"
End Sub

Private Sub cmdRemFilter_Click()
    Me.FilterOn = False
    Me.Filter = ""
End Sub

Вы также можете сделать это, изменив свойство RecordSource вашей формы на событие кнопки. Примерно так:

Me.RecordSource = "SELECT * FROM Product WHERE manufacturer_id = [Please type a manufacturer ID:]"

Чтобы установить его во время разработки, вы можете просто указать условия в свойстве «Фильтр» формы или, что еще лучше, использовать условия в запросе, из которого построена форма.

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