PDA

Показать полную графическую версию : [решено] [access] макрокоманда "ПрименитьФильтр"


paul_8
07-03-2013, 21:00
Помогите пожалуйста, не получается применить фильтр при нажатии на button. Просто за статическим условием легко, но нужно чтобы фильтрация производилась из поля edit.. В единственной форме базы есть кнопка "фильтр" и поле возле нее. Помогите разобраться

Iska
07-03-2013, 21:29
paul_8, сделайте ещё базу в формате 2003-го. Тоже посмотрю.

Я обычно делал динамический фильтр, который накладывался на записи присоединённого запроса при любых изменениях в поле Edit.

paul_8
08-03-2013, 20:11
Прикрепил базу access 2003

Iska
09-03-2013, 05:22
Добавьте такую процедуру:
Private Sub Поле1_Change()
Dim strFilter As String

If IsNull(Me![Поле1].Text) Or IsEmpty(Me![Поле1].Text) Then
DoCmd.ShowAllRecords
Else
strFilter = "[Кодовое слово товара] Like '" & Me![Поле1].Text & "*'"

DoCmd.ApplyFilter , strFilter
End If

Me![Поле1].SetFocus
Me![Поле1].SelStart = Len(Me![Поле1].Text)
End Sub
в модуль формы. Кнопка «Применить_фильтр» не нужна. Если Вам потребен будет поиск не с начала поля, а по включению, в середине слов — добавьте «*» и в начало фильтра:
strFilter = "[Кодовое слово товара] Like '*" & Me![Поле1].Text & "*'"


P.S. paul_8, только объясните — зачем Вы добавили в источник данных формы одну и ту же таблицу дважды?

paul_8
09-03-2013, 11:58
Спасибо! Спешил просто.. Еще вопрос: можно ли сделать фильтр без написания VBA кода?

Iska
09-03-2013, 12:26
Еще вопрос: можно ли сделать фильтр без написания VBA кода? »
Ваш вопрос не понятен. Поясните.

Фильтр не имеет отношения к коду. Он реализуется средствами самой СУБД и, в данном случае, технологии Microsoft Jet.

paul_8
09-03-2013, 12:48
Код:
Private Sub Поле1_Change()
Dim strFilter As String
If IsNull(Me![Поле1].Text) Or IsEmpty(Me![Поле1].Text) Then
DoCmd.ShowAllRecords
Else
strFilter = "[Кодовое слово товара] Like '" & Me![Поле1].Text & "*'"
DoCmd.ApplyFilter , strFilter
End If
Me![Поле1].SetFocus
Me![Поле1].SelStart = Len(Me![Поле1].Text)
End Sub »
Имел в виду без этого кода

Iska
09-03-2013, 13:09
Фильтр на этапе разработки доступен в свойствах формы.




© OSzone.net 2001-2012