Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 10.04.2021
Сообщений: 4
1

Имитация нажатия элемента фильтр через кнопку VBA

07.08.2021, 15:57. Показов 3833. Ответов 17
Метки нет (Все метки)

Добрый день, недавно начал осваивать Microsoft Access, по этому не знаю точной терминологии, прошу подскажите какую команду VBA необходимо использовать для вызова контекстного меню фильтр?
Задача такова: пользователь выбирает необходимый столбец на форме, нажимает кнопку фильтр и всплывает контекстное меню с возможность фильтрации по данным из этой колонки, пример во вложении.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Имитация нажатия элемента фильтр через кнопку VBA  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2021, 15:57
Ответы с готовыми решениями:

Имитация нажатия на кнопку
Как можно заставить jquery автоматически нажать на кнопку без моего участия? например: if (data...

Имитация нажатия на кнопку
Здравствуйте, может кто подсказать можно ли с имитировать нажатие на кнопку?(Ну только не просто...

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

Имитация нажатия на кнопку если нет блока <form>.
Подскажите как сделать имитацию нажатия на кнопку &lt;a href=&quot;&quot; id=&quot;submit&quot;, но только в том случаем...

17
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,789
Записей в блоге: 4
07.08.2021, 19:48 2
Цитата Сообщение от Налог Посмотреть сообщение
контекстное меню с возможность фильтрации по данным из этой колонки
а если в этой колонке 1000+ разных значений - меню не подойдет
смотрите пример фильтрации в ленточной форме в моем блоге
1
0 / 0 / 0
Регистрация: 10.04.2021
Сообщений: 4
07.08.2021, 20:22  [ТС] 3
shanemac51, спасибо, я ознакомился с материалом, но все же команда меню запуска этого фильтра есть?
0
Миниатюры
Имитация нажатия элемента фильтр через кнопку VBA  
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,789
Записей в блоге: 4
07.08.2021, 21:21 4
Цитата Сообщение от Налог Посмотреть сообщение
нажимает кнопку фильтр и всплывает контекстное меню с возможность фильтрации по данным из этой колонки
а если условие выбора по двум колонкам ?

уточните вашу задачу
- сколько примерно записей в вашей таблице 10 или 100 или 1000+
- какой тип данных в фильтруемых колонках(текст, дата , период, числовое)
- проверка на условие - полное значение, часть значения, больше, меньше ....

пока ваша задача слишком неопределенная
0
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 10:01 5
Цитата Сообщение от Налог Посмотреть сообщение
и всплывает контекстное меню с возможность фильтрации по данным из этой колонки
Обычно это делается через всплывающую форму с запросом параметров фильтрации.
Хотите через меню (слабо себе представляю как) - стройте и выводите меню ... примеров в сети "море"!
1
0 / 0 / 0
Регистрация: 10.04.2021
Сообщений: 4
08.08.2021, 10:45  [ТС] 6
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Хотите через меню (слабо себе представляю как) - стройте и выводите меню ... примеров в сети "море"!
Цитата Сообщение от shanemac51 Посмотреть сообщение
пока ваша задача слишком неопределенная
Может я не правильно изъясняюсь, все, что мне нужно, так это открыть фильтр, а точнее контекстное меню фильтра скрин №1, посредством кнопки скрин №2, а не через панель инструментов скрин №3
0
Миниатюры
Имитация нажатия элемента фильтр через кнопку VBA   Имитация нажатия элемента фильтр через кнопку VBA   Имитация нажатия элемента фильтр через кнопку VBA  

8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 10:53 7
Цитата Сообщение от Налог Посмотреть сообщение
Может я не правильно изъясняюсь
Всплывающая форма даст пользователю больше возможностей и дополнительных параметров (как напишите) ...
Не "изобретайте велосипед" !
0
Модератор
Эксперт MS Access
3580 / 2034 / 504
Регистрация: 12.06.2016
Сообщений: 5,202
08.08.2021, 12:19 8
Налог,

Вы контекстное меню программно создаёте?

Добавьте в эту процедуру команду создания пункта "Фильтр для ...":
Visual Basic
1
Set cmbControl = Application.CommandBars("ИмяКонтекстногоменю").Controls.Add(2, 2863)
0
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 12:31 9
Цитата Сообщение от Capi Посмотреть сообщение
Добавьте в эту процедуру команду создания пункта
Да! Можно так, но судя по вопросику ... зашкаливает.
Через отдельную форму установки параметров фильтра - будет проще и надёжнее.
0
Эксперт MS Access
26708 / 14388 / 3190
Регистрация: 28.04.2012
Сообщений: 15,783
08.08.2021, 12:38 10
Лучший ответ Сообщение было отмечено Eugene-LS как решение

Решение

Цитата Сообщение от Налог Посмотреть сообщение
Пользователь выбирает необходимый столбец на форме, нажимает кнопку фильтр и всплывает контекстное меню с возможность фильтрации по данным из этой колонки
Предположу, что требуется программно открыть пункт меню Фильтр из ленты Главная. Это возможно. Надо на событии "Нажатие кнопки" выбрать "Процедура обработки событий" и в открывшемся окне ВБА в процедуре написать docmd.runcommand acCmdFilterMenu. Получится примерно так (но надо заменить "Имя кнопки" на фактическое):
Visual Basic
1
2
3
Private Sub ИмяКнопки_Click()
  docmd.runcommand acCmdFilterMenu
Exit Sub
0
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 12:47 11
Цитата Сообщение от mobile Посмотреть сообщение
docmd.runcommand
это первое что приходит в голову, но ...
0
Миниатюры
Имитация нажатия элемента фильтр через кнопку VBA  
Модератор
Эксперт MS Access
3580 / 2034 / 504
Регистрация: 12.06.2016
Сообщений: 5,202
08.08.2021, 12:53 12
Лучший ответ Сообщение было отмечено Eugene-LS как решение

Решение

Цитата Сообщение от Eugene-LS Посмотреть сообщение
но ...
Фокус, наверное, с кнопки на нужное поле следует предварительно перевести.
1
Эксперт MS Access
26708 / 14388 / 3190
Регистрация: 28.04.2012
Сообщений: 15,783
08.08.2021, 13:06 13
Лучший ответ Сообщение было отмечено Налог как решение

Решение

Цитата Сообщение от Eugene-LS Посмотреть сообщение
это первое что приходит в голову, но ...
Его и надо применять поскольку автор прямо говорит, пользователь должен выбрать "необходимый столбец на форме". А не любой первый попавшийся объект. Если его будет смущать реакция на промахи, он сообщит и ему ответят
Цитата Сообщение от Налог Посмотреть сообщение
Задача такова: пользователь выбирает необходимый столбец на форме, нажимает кнопку фильтр и всплывает контекстное меню с возможность фильтрации по данным из этой колонки
Добавлено через 9 минут
Цитата Сообщение от Capi Посмотреть сообщение
Фокус, наверное, с кнопки на нужное поле следует предварительно перевести.
Да, конечно. Спасибо
Visual Basic
1
2
3
4
Private Sub ИмяКнопки_Click()
    Screen.PreviousControl.SetFocus
    RunCommand acCmdFilterMenu
End Sub
1
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 13:23 14
Цитата Сообщение от Capi Посмотреть сообщение
Фокус, наверное, с кнопки на нужное поле следует предварительно перевести.
Вы совершенно правы!

Исполняю:
Visual Basic
1
2
3
4
Private Sub cmdTest01_Click()
  Me!txtTestMemo.SetFocus
  DoCmd.RunCommand acCmdFilterMenu
End Sub
... и Заработало!

Добавлено через 12 минут
Capi,Pink Fioid зачёт, а как вам это?
Игорь Растеряев - "За окном зима и ночь"
0
0 / 0 / 0
Регистрация: 10.04.2021
Сообщений: 4
08.08.2021, 13:32  [ТС] 15
mobile, спасибо, это то, что мне нужно было!

Цитата Сообщение от mobile Посмотреть сообщение
Visual Basic
1
2
3
Private Sub ИмяКнопки_Click()
Screen.PreviousControl.SetFocus
RunCommand acCmdFilterMenu
0
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 13:35 16
Capi, BTW - "Ленинградский Беломор" - нужно понимать - пояснить ...
Фабрика им. Урицкого (Ленинград) - при изготовлении папирос "Беломор" использовала импортное сырьё - высокого "какчества"!
Сам пробовал = Факт!
0
Модератор
Эксперт MS Access
10269 / 4183 / 679
Регистрация: 07.08.2010
Сообщений: 11,789
Записей в блоге: 4
08.08.2021, 13:50 17
Цитата Сообщение от Налог Посмотреть сообщение
спасибо, это то, что мне нужно было!
кстати неплохо получается, ....в основном
SQL
1
2
3
4
5
6
7
(((([Уникальные детали].[Поставка]="Сторона")
 AND ([Уникальные детали].[L=]>=100
 AND [Уникальные детали].[L=]>=300)
 AND ([Уникальные детали].[Высота]>=10)))
 AND ([Уникальные детали].[Наименование Дет] IN ("Бок","Верх","Стенка")))
 AND ([Уникальные детали].[Обозначение Дет] LIKE "*с*"))
 AND ([Уникальные детали].[Обозначение Дет] LIKE "*сп38*")
0
8259 / 4108 / 937
Регистрация: 05.10.2016
Сообщений: 11,325
Записей в блоге: 1
08.08.2021, 17:28 18
Цитата Сообщение от shanemac51 Посмотреть сообщение
кстати неплохо получается
Только прошли "Ла Манш" с юга, выходим в "Севершое Море" - по 16-му (дежурному) каналу вопрос:
- "Ребята закурить есть?"
- "Найдём! ..."
... а мы только после ремонта вышли - голодные и пустые - на борту только "Беломор" и "Прима" - и никаких "Malboro" и "Camel"
... вежливо легли в дрейф (у рыбаков жизнь не сладкая - уважать нужно)...
К нам швартуется мелкий голландский краболов (метров 20 малыш) и и без лишних рассуждений Бух! нам на палубу 2 ящика отборного крупного краба!
СтарПом Серёга почесав затылок, метнулся в провизионку, и выносит им 20 пачек овальных сигарет "Прима" - Обмен состоялся - рыбаки отчалили ...
...
Никогда больше мне так не было стыдно и за державу обидно ....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2021, 17:28

Имитация нажатия '_' через keybd_event
Добрый день.Мне нужно чтобы программа имитировала нажатие '_',пробовал вот так ...

Имитация нажатия ctrl + v через API
Нужно вставить текст в чужое приложение, решил вставлять через буфер обмену, соответственно нужно...

Имитация нажатия CapsLock через реестр
Вот это так делается обычным способом: keybd_event(VK_CAPITAL, 0, 0 ,0); keybd_event(VK_CAPITAL,...

Имитация нажатия кнопки мыши через процедуру в коде
Есть типичная процедура OnMouseDown: procedure TForm1.IMD(Sender: TObject; Button: TMouseButton;...

По событию нажатия на кнопку вызвать функцию, в которой ждать нового нажатия на ту же самую кнопку
type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); ...

Закрытие элемента меню после нажатия на кнопку
Всем добра. Реализую меню компонентом ToolStrip. К нему добавил toolStripDropDownButton. Далее к...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.