Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 3 вперед Ctrl→ все |
Колхозник
Guest |
Как правльно организовать поиск в ленточной форме, чтобы при вводе каждого последующего символа в строку поиска, значения вформе фильтровались посимвольно. например: если ввести в строку поиска: "ко" в форме остались только записи начиноющиеся на "ко", если добавим к "ко" еще "м", то записи которые начинаются на "ком". Кто такое реализовывал, просьба помочь! |
20 мар 08, 22:14 [5439239] Ответить | Цитировать Сообщить модератору |
Программист-Любитель Member Откуда: Сообщений: 16825 |
AfterUpdate поля фильтрация источника данных формы. Сложного ничего нет. |
20 мар 08, 22:27 [5439259] Ответить | Цитировать Сообщить модератору |
Анатолий ( Киев )
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] Ответить | Цитировать Сообщить модератору |
Программист-Любитель Member Откуда: Сообщений: 16825 |
Не лучше, а правильно именно Change. Я написал не то, что подумал. |
21 мар 08, 10:31 [5440192] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
With Me![имя формы].Form .Filter = "[поле в котором происходит фильтрация] Like " & Me![поле по которому происходит фильтрация].Text & "*" .FilterOn = True End With With Me![поле по которому происходит фильтрация] .SelStart = Len(.Text) End With Вы так имели ввиду? Так не работает, что неправильно? Подскажите пожалуйста! |
22 мар 08, 12:37 [5445217] Ответить | Цитировать Сообщить модератору |
alexmsp Member Откуда: Сообщений: 3575 |
не проверял.Filter = "[поле в котором происходит фильтрация] Like " & "'" & Me![поле по которому происходит фильтрация].Text & "*" & "'" |
22 мар 08, 13:18 [5445254] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Безрезультатно! |
||
22 мар 08, 15:03 [5445391] Ответить | Цитировать Сообщить модератору |
mds_world Member Откуда: Ташкент Сообщений: 27525 |
Для примера. Вставьте форму Поиск в учебную БД Борей. В текстовом поле набирайте шаблон для поиска в поле Сотрудники К сообщению приложен файл (Поиск.rar - 18Kb) cкачать ![]() |
22 мар 08, 15:26 [5445416] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Просмотрел, создал нечто подобное для своей базы. Получилось. НО! Возникают проблемы при совместном поиске по буквам и числам с пробелами. Как это можно решить? |
||
22 мар 08, 17:10 [5445588] Ответить | Цитировать Сообщить модератору |
Александра-Александра Member Откуда: Сообщений: 1742 |
А такой вариант подойдет? |
22 мар 08, 17:20 [5445604] Ответить | Цитировать Сообщить модератору |
Колхозник
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] Ответить | Цитировать Сообщить модератору |
mds_world Member Откуда: Ташкент Сообщений: 27525 |
Не так здесь то, что вы пытаетесь фильтровать ту же форму в которой находится шаблон поиска. При фильтрации форма обновляется и все концевые пробелы исчезают. Так принять в микрософте. Можно, конечно, изогнуться и сделать с пробелами. Но стоит ли? Обычная практика, это когда форма в которой производят поиск и форма из которой ищут разделены. Шаблон поиска на главной форме (чаще всего эта форма без источника, просто контейнер для других форм), а форма в которой ищут - подформа. И тогда никаких проблем с обновлением формы нет. Ей просто не дают такой команды. |
||
22 мар 08, 18:38 [5445720] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Так что же все-таки делать, если все есть как есть? |
||||
22 мар 08, 19:05 [5445768] Ответить | Цитировать Сообщить модератору |
mds_world Member Откуда: Ташкент Сообщений: 27525 |
А вот примерно так можно сделать. (тоже на основе Борея) К сообщению приложен файл (Поиск.rar - 13Kb) cкачать ![]() |
||
22 мар 08, 19:40 [5445834] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Me.Filter = "[поле в котором происходит фильтрация] Like " & "'" & Me![поле по которому происходит фильтрация].Text & "*" & "'"Почему при выполнении этого кода поиск происходит только по 1 букве, почему он не дает полноразмерный поиск, как исправить? |
24 мар 08, 20:45 [5452670] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
UP! Вопрос остается в силе! Как сделать фильтр, если критерий поиска и записи находятся в 1 форме!!! |
25 мар 08, 22:07 [5458570] Ответить | Цитировать Сообщить модератору |
Restavraciya Member [заблокирован] Откуда: Сообщений: 5139 |
> Как сделать фильтр, если критерий поиска и записи находятся в 1 форме!!! Лехко :-) Перед тем как применить фильтр сохраните содержимое поля где вводите образец в глобальной переменной После применения фильтра вернуть из глобальной в то поле и т.д. |
25 мар 08, 22:18 [5458601] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
А можно пример в студию...! |
25 мар 08, 22:28 [5458642] Ответить | Цитировать Сообщить модератору |
Restavraciya Member [заблокирован] Откуда: Сообщений: 5139 |
Пример чего ? мдб-файл что-ли ? Из "Капитана Врунгеля" - Мистер Фукс, у вас есть план ? - А разве по мне не заметно ? Объявляеш глобальную переменную в общем модуле Далее по тексту пред.поста |
25 мар 08, 22:36 [5458673] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Прошу прощения, но мы говорим на разных языках, я просил пример кода... |
||
25 мар 08, 22:44 [5458698] Ответить | Цитировать Сообщить модератору |
Restavraciya Member [заблокирован] Откуда: Сообщений: 5139 |
Я говорю на русском, вы кажется тоже Разности не наблюдаю ![]() Ок. Попробую сваять Если правильно понял нужно в ленточной/табличной/одиночной (любой) форме которая сидит на запросе в некое поле вводить образец чтобы он был фильтром для формы. Так? И еще - это поле должно быть свободное или иметь источник данных ? (спрашиваю чтобы не тратиь сил напрасно) |
25 мар 08, 22:54 [5458733] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
Все именно так, поле должно быть свободное... |
||
25 мар 08, 22:55 [5458737] Ответить | Цитировать Сообщить модератору |
Restavraciya Member [заблокирован] Откуда: Сообщений: 5139 |
И еще - вам как нравиться: на изменение или на апдейт поля применять фильтр ? Только не надо хотеть всего и сразу - ограничтесь самым необходимым. ;-) |
25 мар 08, 22:59 [5458745] Ответить | Цитировать Сообщить модератору |
Колхозник
Guest |
На изменение - Change |
||
25 мар 08, 23:01 [5458750] Ответить | Цитировать Сообщить модератору |
mds_world Member Откуда: Ташкент Сообщений: 27525 |
Колхозник, в первом варианте, который я давал в посте от 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 | ![]() |