С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406

Альтернативный поиск в таблице на VBA

20.04.2016, 09:48. Показов 4167. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую
Есть ли полная замена поиска по таблице на визуал бэйсике который реализован в панели навигации разработчиками с переходом на найденную запись?
Подойдет и вариант поиска по конкретному полю.
Я порылся в поисковиках, обычно к поиску пытаются прикрутить какие то свои возможности, мне бы хотелось просто поиск значения введенного в свободное поле на форме.
Причина просто в том, что бы избавиться от лишних элементов панели навигации где они не нужны а нужен только поиск.
Вложения
Тип файла: rar Поиск по таблице.rar (16.3 Кб, 35 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2016, 09:48
Ответы с готовыми решениями:

vba Excel макросы на поиск четных и нечетных элементов в таблице
Здраствуйте,столкнулся с такой проблемой. Необходимо написать макрос в Excel , который по выделенной области ищет Четные и нечетные...

Поиск одинакового поля в таблице Access и присвоение его ID (VBA)
Здравствуйте, подскажите пожалуйста как реализовать следующее на языке VBA, уже только что не перепробовал. При импорте ячейки из...

автоподстановка или альтернативный поиск в sql
Вопросик следующий - есть sql запрос, который выполняет поиск по БД на основании пользовательских данных. Запрос использует оператор LIKE,...

20
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
20.04.2016, 10:22
Вариант поиска с рекордсурсом на событии Изменение (Change) поискового поля
Вложения
Тип файла: rar Поиск по таблице.rar (18.5 Кб, 76 просмотров)
1
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
20.04.2016, 11:01  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Вариант поиска с рекордсурсом на событии Изменение (Change) поискового поля
Это конечно хорошо, благодарю, как вариант подойдет, но мне бы хотелось как в стандартном поиске, то есть выделяется подходящая запись а не скрываются неподходящие.
И по нажатию enter идет выделение последующих подходящих записей.
Так можно сравнивать соседние записи и видеть где относительно них находится текущая.
В общем как в стандартном поиске реализовано.

Добавлено через 5 минут
Если по нажатию enter проблемно, можно по нажатию кнопок причем вообще хорошо было бы двумя кнопками искать последующую и предыдущую запись.

Добавлено через 1 минуту
А так это просто фильтр по форме получается фактически только с неполным аргументом, что то же иногда полезно.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
20.04.2016, 11:45
Лучший ответ Сообщение было отмечено sysghost как решение

Решение

Можно и так. Только вместо Enter кнопки со стрелочками: стрелка вверх - предыдущая, стрелка вниз - следующая. Добавлено также, для полного сходства, выбор типа совпадения: с любой частью поля; с начала поля.
Вложения
Тип файла: rar Поиск по таблице.rar (18.6 Кб, 67 просмотров)
1
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 09:36  [ТС]
Замечательно, только бы еще фокус на найденное поле переместить и полностью как в оригинале, но то уже не обязательно.
Благодарю mobile

Добавлено через 21 час 44 минуты
Все же если кто поможет подсветить или выделить найденный результат буду благодарен, а то несколько неудобно.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
21.04.2016, 09:55
А чем вас не устраивает просто вызвать стандартное средство поиска?

Visual Basic
1
DoCmd.RunCommand acCmdFind
0
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 10:54  [ТС]
Цитата Сообщение от texnik-san Посмотреть сообщение
А чем вас не устраивает просто вызвать стандартное средство поиска?
Я не говорил что не устраивает, я спросил как можно организовать поиск аналогичный стандартному, mobile предложил вариант который вполне удобен, только найденное значение очень слабо выделяется, его бы как то более очевидно подсветить цветом.

Сейчас попробую Ваш вариант, я так понял он должен вызвать стандартный диалог поиска?
Поиск вызывается но ничего не находит, вероятно в начале нужно указать в какой форме искать.

Добавлено через 19 минут
Visual Basic
1
2
3
4
Private Sub КнопкаПоиск_Click()
Me.Ф_Таблица1.SetFocus
DoCmd.RunCommand acCmdFind
End Sub
Ну в принципе работает но есть два недостатка.
Первое это то, что нет поиска в обратную сторону и выскакивает доп диалог что поле не найдено и когда его нет и когда перешло за последнее найденное. Вместо этого лучше бы в первом случае вобще ничего не выделял а во втором не терял выделение последней найденной записи. Два раза поиск кликнул, ничего не поменялось, значит больше ничего нет.

Второй более существенный, это то, что данный диалог занимает существенную часть страницы и закрывает данные, его нужно тягать что бы не мешал. Если бы все го пункты можно было по выбору встраивать в свою форму то тогда вполне приемлемо.

Недостаток же варианта mobile в слабо заметном выделении найденного значения,это бы исправить и все было бы замечательно.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.04.2016, 14:12
Цитата Сообщение от sysghost Посмотреть сообщение
Недостаток же варианта mobile в слабо заметном выделении найденного значения,это бы исправить и все было бы замечательно.
Не совсем понимаю, что значит "заметно слабое выделение". Вот как отображается у меня после выбора подстроки "вла". Отчетливо видна найденная строка "Владимир". Если это "слабое выделение", то каким должно быть сильное?
Миниатюры
Альтернативный поиск в таблице на VBA  
0
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 14:55  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Не совсем понимаю, что значит "заметно слабое выделение". Вот как отображается у меня после выбора подстроки "вла". Отчетливо видна найденная строка "Владимир". Если это "слабое выделение", то каким должно быть сильное?
Если бы у меня так отображалось, то конечно я бы не беспокоил, как у меня отображается на скрине:
Выделена запись Василий, если кто рассмотрит (хз почему так, менял форматирование текста, выделение всегда такое, access 2010 в режиме совместимости с 2003)
Миниатюры
Альтернативный поиск в таблице на VBA  
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
21.04.2016, 14:56
А зачем вы выделили всю форму?
0
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 15:06  [ТС]
Я думаю нужно мнение третьей стороны, может это от каких то настрое access зависит?
Кто смотрел пример?
0
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 15:09  [ТС]
Цитата Сообщение от texnik-san Посмотреть сообщение
А зачем вы выделили всю форму?
В смысле?
Это показан пример выложенный ранее, сейчас перезалью.
Вложения
Тип файла: rar Поиск по таблице финал.rar (20.6 Кб, 44 просмотров)
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
21.04.2016, 15:09
А попробуйте еще вот так.
Вложения
Тип файла: rar Поиск по таблице.rar (25.2 Кб, 48 просмотров)
1
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.04.2016, 15:12
Посмотрите в Параметрах=>Параметры клиента=>Поведение при входе в поле. У меня стоит "выделить поле целиком". Попробуйте также.
Кстати, этот параметр можно задать и/или отменить программно. Например задать
Visual Basic
1
Application.SetOption "Поведение при входе в поле", 0
1
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 15:29  [ТС]
Цитата Сообщение от texnik-san Посмотреть сообщение
А попробуйте еще вот так.
Так же, ничего не изменилось.
Цитата Сообщение от mobile Посмотреть сообщение
Посмотрите в Параметрах=>Параметры клиента=>Поведение при входе в поле. У меня стоит "выделить поле целиком". Попробуйте также.
Кстати, этот параметр можно задать и/или отменить программно. Например задать
Visual BasicВыделить код
1
Application.SetOption "Поведение при входе в поле", 0
Во как оказывается, я ничего не менял в поведении, но по Вашей инструкции все стало выделяться как у Вас, благодарствую!
Вот только не ясно что вписать вместо "Поведение при входе в поле", но я почитаю про Application.SetOption
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.04.2016, 15:43
Второй параметр SetOption в данном случае указывает на место расположения курсора и выделение текста записи:
0 - выделить поле целиком
1 - перейти в начало поля
2 - перейти в конец поля

Если в других формах Вас не устраивает выделение текста, то можно инициировать его только в поисковой форме. В процедуре загрузки задать сетопшен с параметром 0 и будет выделять поле целиком, а на событии закрытия формы с параметром 1 или 2, как нравится.
1
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 15:52  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Второй параметр SetOption в данном случае указывает на место расположения курсора и выделение текста записи:
0 - выделить поле целиком
1 - перейти в начало поля
2 - перейти в конец поля
Мда, я думал что вместо "Поведение при входе в поле" нужно задать какой то параметр, а он оказывается русский понимает...
А я штудирую страницу https://msdn.microsoft.com/en-... 23177.aspx
и не могу понять какя опция мне в данном случае больше подходит...
Благодарю, все работает, вопрос снят.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.04.2016, 16:00
Можно и по английски задать:
Visual Basic
1
Application.SetOption "Behavior entering field", 0
2
 Аватар для sysghost
40 / 40 / 6
Регистрация: 12.01.2016
Сообщений: 406
21.04.2016, 16:11  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Можно и по английски задать:
Ну я уже в 2003 открывал, там то-же выделяется как нужно и в русском варианте.
Дела.
Ну думаю английский вариант более универсален, в общем с поиском теперь полная ясность и порядок!

Добавлено через 6 минут
Хотя
В общем опция совпадения с любой частью поля не работает, но она мне не нужна, просто для справки.
При обоих выборах ищет совпадение только с началом поля, может то-же есть особенности?
О сорри, просто не на том чекбосе висит, все норм.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
21.04.2016, 16:18
Цитата Сообщение от sysghost Посмотреть сообщение
При обоих выборах ищет совпадение только с началом поля, может то-же есть особенности?
Да это я перепутал
В процедурах Поле1_Change, btnPred_Click и btnNext_Click замените строку Select Case на
Visual Basic
1
Select Case Me.grpTip: Case 1: par = "*": Case 2: par = "": End Select
В прежней редакции получалось все наоборот
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2016, 16:18
Помогаю со студенческими работами здесь

Поиск по части наименования в таблице и перевод курсора в соответствующую область в другой таблице
Добрый день. Есть файл, в нем на листе Label_base вызывается по кнопке форма. Далее задуман такой алгоритм: - юзер вводит в...

Поиск записей в одной таблице, где значения ключевого поля не совпадают с полем в другой таблице
Имеется Access XP, надо создать запрос для поиска записей в таблице ТОВАРЫ,где значения ключевого поля (Артикул) не совпадают со значениями...

Поиск значения в таблице StringGrid (в неупорядоченной таблице)
Здравствуйте! Очень нужна помощь! Есть таблица StringGrid1 с данными( номер, ФИО, возраст, образование и т.п.). Нужно организовать поиск...

VBA код на выделение в таблице...?
Всем доброго времени суток. У меня такой вопрос, как повешать некоторое событие на выделение в таблице? т.е. при выделении некоторой...

Обновление данных в таблице VBA
Добрый день! Потихоньку пытаюсь разобраться с access'ом и VBA. Возник затык. Каким образом можно изменить несколько полей одной таблицы с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru