|
|
|
| Акс 2007. Согласна пересохраниться под 2003.
Есть форма, заполняемая запросом.
1) Есть поле плПоиск, в котором по событию "ИЗМЕНЕНИЕ" выполнялся код:
dim flt as string
flt = Me.плПоиск.Text
Me.Filter = "НомерТелефона Like '*"+flt+"*'"
Me.FilterOn = True
Проблема в том, что при таком раскладе рассматривается только один символ в поле Поиск. То есть, нельзя ввести 8926, чтобы вывести все телефоны, в которых встречается такое сочетание цифр.
Решила эту проблему добавлением в конце строки:
Me.SelStart = Len(flt)
Все, вроде, ничего, но команда FilterOn съедает пробелы. И если я хочу найти телефоны, в которых есть комбинация 8 926, то поиск не сработает.
2) Из-за того, что форма заполняется запросом, где-то в Аксе2007 ( в 2003 не было такого занудства вроде) стоит установка, чтобы нельзя было добавлять новую запись, типа надо сначала в одну таблицу добавить, потом в другую, чтобы не возникало ошибок. Проблема получается в том случае, когда пользователь вводит в поле Фильтра-Поиска комбинацию символов, которые не встречаются в форме. Вылетает ошибка о том, что типа, мол, сфокусироваться не на что: область данных в форме становится пустой и даже нет строки для новой записи, как это было в Аксе 2003.
Пожалуйста, помогите!!!! Заказчику уж очень нравится динамическая фильтрация, чтобы нажать один символ - и данные отфильтровались. | |
|
| |
|
|
|
| Как вариант
1. Не нужно номера телефонов хранить с лишними символами (зачем нужны пробелы тире и всякие другие знаки которые загаживают поле - руки юзерам за енто обрывать надо, ну и защиты ставить от их шаловливых ручек) т.е. комбинации типа 8 923 изначально быть не должно
есть номер телефона состоящий из цифирек и пусть этим довольствуются
2. Принцип который можно(нужно) использовать при динамической фильтрации очень хорошо показан в примере Lukas - наберите в поисковике этого форума слово кукуруза - только там собирается запрос, а у вас форма, но что мешает изменять RecordSource формы (подчиненной формы) | |
|
| |
|
|
|
| неплохобы проверять поле поиска на "пустоту"
посмотрите вот это
http://hiprog.com/index.php?option=com_content&task=view&id=251661615&Itemid=35
Для пробела
после
flt = Me.плПоиск.Text
добавьте
Me.плПоиск = flt
по поводу 2 не очень полял | |
|
| |