Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   [решено] [access] макрокоманда "ПрименитьФильтр" (http://forum.oszone.net/showthread.php?t=255759)

paul_8 07-03-2013 21:00 2106421

[access] макрокоманда "ПрименитьФильтр"
 
Вложений: 1
Помогите пожалуйста, не получается применить фильтр при нажатии на button. Просто за статическим условием легко, но нужно чтобы фильтрация производилась из поля edit.. В единственной форме базы есть кнопка "фильтр" и поле возле нее. Помогите разобраться

Iska 07-03-2013 21:29 2106435

paul_8, сделайте ещё базу в формате 2003-го. Тоже посмотрю.

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

paul_8 08-03-2013 20:11 2106966

Вложений: 1
  • db3.rar (9.20 KB, скачиваний: 39)
Прикрепил базу access 2003

Iska 09-03-2013 05:22 2107177

Добавьте такую процедуру:
Код:

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 2107262

Спасибо! Спешил просто.. Еще вопрос: можно ли сделать фильтр без написания VBA кода?

Iska 09-03-2013 12:26 2107276

Цитата:

Цитата paul_8
Еще вопрос: можно ли сделать фильтр без написания VBA кода? »

Ваш вопрос не понятен. Поясните.

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

paul_8 09-03-2013 12:48 2107291

Цитата:

Цитата Iska
Код:
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 2107300

Фильтр на этапе разработки доступен в свойствах формы.


Время: 19:41.

Время: 19:41.
© OSzone.net 2001-