Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамическая фильтрация в форме (копия поста с темой 2007/2003)
 
 автор: esperanza   (06.05.2010 в 21:56)   личное сообщение
 
 

Акс 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.

Пожалуйста, помогите!!!! Заказчику уж очень нравится динамическая фильтрация, чтобы нажать один символ - и данные отфильтровались.

  Ответить  
 
 автор: snipe   (07.05.2010 в 05:24)   личное сообщение
 
 

Как вариант
1. Не нужно номера телефонов хранить с лишними символами (зачем нужны пробелы тире и всякие другие знаки которые загаживают поле - руки юзерам за енто обрывать надо, ну и защиты ставить от их шаловливых ручек) т.е. комбинации типа 8 923 изначально быть не должно
есть номер телефона состоящий из цифирек и пусть этим довольствуются
2. Принцип который можно(нужно) использовать при динамической фильтрации очень хорошо показан в примере Lukas - наберите в поисковике этого форума слово кукуруза - только там собирается запрос, а у вас форма, но что мешает изменять RecordSource формы (подчиненной формы)

  Ответить  
 
 автор: osmor   (07.05.2010 в 08:52)   личное сообщение
 
 

неплохобы проверять поле поиска на "пустоту"
посмотрите вот это
http://hiprog.com/index.php?option=com_content&task=view&id=251661615&Itemid=35
Для пробела
после
flt = Me.плПоиск.Text
добавьте
Me.плПоиск = flt

по поводу 2 не очень полял

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList