Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Организация динамического поиска  [new]
Колхозник
Guest
Как правльно организовать поиск в ленточной форме, чтобы при вводе каждого последующего символа в строку поиска, значения вформе фильтровались посимвольно.

например:
если ввести в строку поиска: "ко" в форме остались только записи начиноющиеся на "ко", если добавим к "ко" еще "м", то записи которые начинаются на "ком".

Кто такое реализовывал, просьба помочь!
20 мар 08, 22:14    [5439239]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16825
AfterUpdate поля фильтрация источника данных формы. Сложного ничего нет.
20 мар 08, 22:27    [5439259]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Анатолий ( Киев )
Guest
Лучше - событие Change.
With Me![SubForm].Form
 .Filter = "[Поле] Like " & Me![Критерий].Text & "*"
 .FilterOn = True 
End With
Возможно понадобится и это (оставить курсор в конце текста):
With Me![Критерий]
 .SelStart = Len(.Text)
End With
21 мар 08, 10:25    [5440161]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16825
Не лучше, а правильно именно Change. Я написал не то, что подумал.
21 мар 08, 10:31    [5440192]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
With Me![имя формы].Form
 .Filter = "[поле в котором происходит фильтрация] Like " & Me![поле по которому происходит фильтрация].Text & "*"
 .FilterOn = True 
End With
With Me![поле по которому происходит фильтрация]
 .SelStart = Len(.Text)
End With

Вы так имели ввиду? Так не работает, что неправильно? Подскажите пожалуйста!
22 мар 08, 12:37    [5445217]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
alexmsp
Member

Откуда:
Сообщений: 3575
не проверял
 .Filter = "[поле в котором происходит фильтрация] Like " & "'" & Me![поле по которому происходит фильтрация].Text & "*" & "'"
22 мар 08, 13:18    [5445254]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
alexmsp
не проверял
 .Filter = "[поле в котором происходит фильтрация] Like " & "'" & Me![поле по которому происходит фильтрация].Text & "*" & "'"


Безрезультатно!
22 мар 08, 15:03    [5445391]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27517
Для примера. Вставьте форму Поиск в учебную БД Борей. В текстовом поле набирайте шаблон для поиска в поле Сотрудники

К сообщению приложен файл (Поиск.rar - 18Kb) cкачать
22 мар 08, 15:26    [5445416]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
mds_world
Для примера. Вставьте форму Поиск в учебную БД Борей. В текстовом поле набирайте шаблон для поиска в поле Сотрудники


Просмотрел, создал нечто подобное для своей базы. Получилось.
НО!
Возникают проблемы при совместном поиске по буквам и числам с пробелами.
Как это можно решить?
22 мар 08, 17:10    [5445588]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Александра-Александра
Member

Откуда:
Сообщений: 1742
А такой вариант подойдет?
22 мар 08, 17:20    [5445604]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
Private Sub Поиск_Change()
   Dim p, s
   p = Поиск.Text
   Me.Form.Filter = "Название Like '*" & p & "*'"
   Me.Form.FilterOn = True
   Me.Поиск.SelStart = Nz(Len(Me.Поиск), 0)
   Me.Поиск.SelLength = 0
End Sub

Хотелось бы разобраться, что здесь все-таки не так.!?
22 мар 08, 18:25    [5445700]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27517
Колхозник
Хотелось бы разобраться, что здесь все-таки не так.!?

Не так здесь то, что вы пытаетесь фильтровать ту же форму в которой находится шаблон поиска. При фильтрации форма обновляется и все концевые пробелы исчезают. Так принять в микрософте. Можно, конечно, изогнуться и сделать с пробелами. Но стоит ли? Обычная практика, это когда форма в которой производят поиск и форма из которой ищут разделены. Шаблон поиска на главной форме (чаще всего эта форма без источника, просто контейнер для других форм), а форма в которой ищут - подформа. И тогда никаких проблем с обновлением формы нет. Ей просто не дают такой команды.
22 мар 08, 18:38    [5445720]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
mds_world
Колхозник
Хотелось бы разобраться, что здесь все-таки не так.!?

Не так здесь то, что вы пытаетесь фильтровать ту же форму в которой находится шаблон поиска. При фильтрации форма обновляется и все концевые пробелы исчезают. Так принять в микрософте. Можно, конечно, изогнуться и сделать с пробелами. Но стоит ли? Обычная практика, это когда форма в которой производят поиск и форма из которой ищут разделены. Шаблон поиска на главной форме (чаще всего эта форма без источника, просто контейнер для других форм), а форма в которой ищут - подформа. И тогда никаких проблем с обновлением формы нет. Ей просто не дают такой команды.


Так что же все-таки делать, если все есть как есть?
22 мар 08, 19:05    [5445768]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27517
Колхозник
Так что же все-таки делать, если все есть как есть?

А вот примерно так можно сделать. (тоже на основе Борея)

К сообщению приложен файл (Поиск.rar - 13Kb) cкачать
22 мар 08, 19:40    [5445834]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
Me.Filter = "[поле в котором происходит фильтрация] Like " & "'" & Me![поле по которому происходит фильтрация].Text & "*" & "'"
Почему при выполнении этого кода поиск происходит только по 1 букве, почему он не дает полноразмерный поиск, как исправить?
24 мар 08, 20:45    [5452670]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
UP!
Вопрос остается в силе!
Как сделать фильтр, если критерий поиска и записи находятся в 1 форме!!!
25 мар 08, 22:07    [5458570]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Restavraciya
Member [заблокирован]

Откуда:
Сообщений: 5139
> Как сделать фильтр, если критерий поиска и записи находятся в 1 форме!!!

Лехко :-)

Перед тем как применить фильтр сохраните содержимое поля где вводите образец в глобальной переменной
После применения фильтра вернуть из глобальной в то поле и т.д.
25 мар 08, 22:18    [5458601]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
А можно пример в студию...!
25 мар 08, 22:28    [5458642]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Restavraciya
Member [заблокирован]

Откуда:
Сообщений: 5139
Пример чего ? мдб-файл что-ли ?

Из "Капитана Врунгеля"
- Мистер Фукс, у вас есть план ?
- А разве по мне не заметно ?

Объявляеш глобальную переменную в общем модуле
Далее по тексту пред.поста
25 мар 08, 22:36    [5458673]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
Restavraciya
Пример чего ? мдб-файл что-ли ?

Из "Капитана Врунгеля"
- Мистер Фукс, у вас есть план ?
- А разве по мне не заметно ?

Объявляеш глобальную переменную в общем модуле
Далее по тексту пред.поста


Прошу прощения, но мы говорим на разных языках, я просил пример кода...
25 мар 08, 22:44    [5458698]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Restavraciya
Member [заблокирован]

Откуда:
Сообщений: 5139
Я говорю на русском, вы кажется тоже
Разности не наблюдаю

Ок. Попробую сваять
Если правильно понял нужно в ленточной/табличной/одиночной (любой) форме которая сидит на запросе в некое поле вводить образец чтобы он был фильтром для формы. Так?
И еще - это поле должно быть свободное или иметь источник данных ?
(спрашиваю чтобы не тратиь сил напрасно)
25 мар 08, 22:54    [5458733]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
Restavraciya
Я говорю на русском, вы кажется тоже
Разности не наблюдаю

Ок. Попробую сваять
Если правильно понял нужно в ленточной/табличной/одиночной (любой) форме которая сидит на запросе в некое поле вводить образец чтобы он был фильтром для формы. Так?
И еще - это поле должно быть свободное или иметь источник данных ?
(спрашиваю чтобы не тратиь сил напрасно)


Все именно так, поле должно быть свободное...
25 мар 08, 22:55    [5458737]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Restavraciya
Member [заблокирован]

Откуда:
Сообщений: 5139
И еще - вам как нравиться: на изменение или на апдейт поля применять фильтр ?
Только не надо хотеть всего и сразу - ограничтесь самым необходимым.
;-)
25 мар 08, 22:59    [5458745]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
Колхозник
Guest
Restavraciya
И еще - вам как нравиться: на изменение или на апдейт поля применять фильтр ?
Только не надо хотеть всего и сразу - ограничтесь самым необходимым.
;-)


На изменение - Change
25 мар 08, 23:01    [5458750]     Ответить | Цитировать Сообщить модератору
 Re: Организация динамического поиска  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27517
Колхозник,
в первом варианте, который я давал в посте от 15:26, измените процедуру поиска на
Private Sub Поиск_Change()
    Dim p, s
    p = Поиск.Text
    Me.Form.Filter = "Фамилия Like '*" & p & "*'"
    Me.Form.FilterOn = True
    Me.Поиск.SetFocus
    Me.Поиск = p
    SendKeys "{f2}"
End Sub
И пойдет с пробелами
25 мар 08, 23:02    [5458753]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить