|
|
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Не знаю возможно ли вообще такое :) Есть мэйн форма с полем для ввода ФИО. Задача: когда юзер начинает вводить фамилию, под контролом открывается форма, в которой по мере ввода сортируются имеющиеся в базе фамилии, после того, как юзер вводит пробел (чтобы начать вводить имя), сортировка в форме должна начаться по введенной фамилии и по вводимому имени. Как реализовать такую сортировку??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 20:58 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Уточнение :) Проблема в том как после ввода пробела поменять параметры сортировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:00 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
> по мере ввода сортируются имеющиеся в базе фамилии Сортируются или отсеиваются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:03 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Отсеиваются, но с фамилиями это уже достигнуто :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:05 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:07 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Спасибо идею вижу :) А отчество тоже так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:13 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
С отчеством сложнее, потому что надо ловить второй пробел. Так что лучше написать 3 функции и пользоваться ими. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:22 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Спасибо, Саныч, ща разбираться буду :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 21:23 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Саныч, у меня нет слов! Я не ожидал такого простого решения Разобрался - все работает Спасибо еще раз :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 22:30 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Есть в этом деле одна неприятная штука. Для того чтобы происходил посимвольный отбор необходимо после ввода нового символа делать Recalc формы, а это получается крайне медленно. Можно ли как-то обойти это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 00:01 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Я бы писал не Recalc, а Requery. Правда, на скорость это влиять не должно. Если работает медленно - надо искать почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 13:41 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Вместо Recalc формы я сделал Requery листбокса и все стало нармально работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 15:07 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
ПРОДОЛЖЕНИЕ :) Теперь мне нужно сделать форму поиска. На форме: 6 полей с данными (ленточная форма) и, соответственно, 6 поле для ввола критериев поиска в соответствующих полях. 6-е поле - ФИО, которое имеет своим значением сочетание полей Фамилия, Имя и Отчество. Задача в принципе похожа: в поле поиска ФИО юзер последовательно вводит ФИО и происходит синхронный отбор. Проблема : предложенные выше функции я использовал в рекордсурсе формы. Но дело в то, что эти функции работают только со свойством .Text, запрос при загрузке формы не выполняется и возникает ошибка "Слишком сложное выражение и т.д. и т.п.". И что мне с этим делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 16:38 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Насчет Text отвечаю сразу - его надо заменить на Value. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 16:55 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
С Value работает лучше (если ввсети в поле ФИО любой символ, а потом стереть его, то возникает таже ошибка, т.е. работает только, когда Null или введен любой символ), но выбираются только те записи, где есть и фамилия и имя и отчество ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:05 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
> но выбираются только те записи, где есть и фамилия и имя и отчество Потому что я написал Like "*". Наверно, в запросе надо добавить or ... is null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:10 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
iif(FunN([param])="*",true,fieldN like FunN([param]) Во как. Даже is null проверять не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:12 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
> если ввсети в поле ФИО любой символ, а потом стереть его, то возникает таже ошибка Интересно посмотреть, что происходит внутри функций. Может быть, надо описать в них параметр как Variant и добавить в самом начале каждой: if isnull(s)then Fun...="*" exit function endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:15 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Так тоже пробывал - тогда в любом случае отображаются все записи. Вот запрос (для наглядности): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:15 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Так тоже пробывал относится к варианту с Is null :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:17 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Да, насчет is null я погорячился. И попробуй все-таки не пробывАть, а прОбовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:18 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Может быть, надо описать в них параметр как Variant и добавить в самом начале каждой: .... В любом случае выдается список всех ФИО, где ФИО полностью введены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:24 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Ну так проверь, что возвращает каждая функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:26 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Как выясняется звездочка она же "*" возвращает только непустые значения!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:26 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Насчет звездочки я предложил другой вариант в 17:12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:27 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Я только что вместо всего WHERE поставил Код: plaintext 1. 2. И получил тоже самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:27 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Насчет звездочки я предложил другой вариант в 17:12 По-моему звездочка не подходит тут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 17:29 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Всеволод, 17:12 - это значит мой пост от 17:12. Его надо прочитать. Там звездочка не подставляется в селект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 19:48 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Что-то вы две страницы обсуждаете уже, а я не могу понять, зачем это надо. Поэтому попробую привнести новую струю. :) > Есть мэйн форма с полем для ввода ФИО. Задача: когда юзер начинает вводить фамилию, под контролом открывается форма, в которой по мере ввода сортируются имеющиеся в базе фамилии, после того, как юзер вводит пробел (чтобы начать вводить имя), сортировка в форме должна начаться по введенной фамилии и по вводимому имени. Как реализовать такую сортировку??? Вот мои вопросы: 1. А так ли оно надо, чтобы изобретать различные извраты? 2. А почему бы, вместо того, чтобы делить строку на субстроки (тем паче, что их совсем не обязательно будет 3 - фамилия_имя_отчество, м.б. и 2, и 4, и т.д.), не объединить фамилию, имя и отчество в одно поле в запросе ... Family & (" " + FirstName) & (" " + ParentName) As FIO ... ? 3. А почему бы не использовать вместо формы поле со списком? Варианты ответов: 1. Да. А смысл тянуть за каждым нажатием клавиши ( ...по мере ввода сортируются... ) паравоз вычислений? Вдруг эту форму придется запускать на не очень новом компьютере? "Бойся данайцев"? Exit 1. Нет. Goto 2 2. Нет. Почему? Exit 2. Да. Тогда все становится намного проще. А пользователи через два дня работы привыкнут, что, например, между фамилией и именем надо ставить один, а не пятнадцать пробелов. Можно легко делать как в текстовом поле, так и goto 3, за минусом функции разбиения строки на лексемы. 3. Нет. Ок. Exit. 3. Да. Поле со списком, имхо, как раз и предназначено (и как правило неплохо справляется со своим предназначением) для облегчения ввода. Если очень хочется наглядности, при получении фокуса полем можно делать какой-нибудь sendkeys("Alt-Down"), чтобы список сразу открывался, и юзер видел ближайшие подходящие записи. А позиционировать запись в подформе можно после нажатия Enter - работать будет намного быстрее. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 22:14 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
Поэтому попробую привнести новую струю Привносишь новую струю в решенную проблему :) Вопрос 1: Смысл ЕСТЬ причем глубокий! На медленном компьютере протоестированно - все ОК. Вопрос 2: Хочу ответить Да, но не совсем понимаю, как это будет работать. Family & (" " + FirstName) & (" " + ParentName) As FIO, т.е. в запросе (рекордсурс листбокса), ясное дело, будет ФИО в одном поле - это мне жить не мешает, но как будет происходить сортировка в этом списке по мере ввода ФИО, т.е. сначала по фамилии потом по имени, а затем по отчеству По поводу моего "Привносишь новую струю в решенную проблему :)" см. мой пост 16:38 2Владимир Саныч Что-то я туплю :) Лучше завтра попробую разобраться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 23:23 |
|
||
|
Поиск в подчиненной форме (как вычленить части из ФИО и фильтровать по 3 полям)
|
|||
|---|---|---|---|
|
#18+
но как будет происходить сортировка в этом списке по мере ввода ФИО, т.е. сначала по фамилии потом по имени, а затем по отчеству Как и обычная сортировка (только по мере ввода будет происходить не сортировка, а установка текущей записи, насколько я понимаю): Иванов Иван Иванович Иванов Иван Петрович Иванов Иван Сидорович Иванов Павел Иванович Иванова Алла Андреевна .... см. мой пост 16:38 Недоглядел. причем глубокий Ну, глубокий, так глубокий. --- Только я одного не пойму, зачем пробелы-то лишние выдергивать? Это равносильно тому, что пытаться удалять дубликаты букв, например "Иииванов Иван...", если "Ииивановых" нет, а есть только "Ивановы". Нет подходящих записей - пользователь сам поправится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2003, 23:37 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1678607]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 400ms |

| 0 / 0 |
