С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
19 / 5 / 1
Регистрация: 27.12.2013
Сообщений: 127

Как открыть форму с параметрами на vba

05.02.2017, 17:23. Показов 8191. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как написать на VBA такой макрос
Миниатюры
Как открыть форму с параметрами на vba  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2017, 17:23
Ответы с готовыми решениями:

Как проверить значение соседнего атрибута (via VBA) и открыть соответствующую форму?
В форме два поля: - Имя сотрудника (Выпадающий список имён из базы данных) - Пароль (1245678) При нажатии на кнопку...

Открыть форму с параметрами в подчиненной
Уважаемые знатоки Access, помогите в моей проблеме! По нажатию кнопки открывается форма frmVozvrata с подчиненной формой...

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

5
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2017, 17:31
scorpy, сделайте преобразование макроса в код ВБА (на ленте Преобразовать макросы) и Вам немедленно ответят. С макросами мало кто плотно работал. Я впервые вижу такую группу Параметры. Можно предположить, что это OpenArgs, но есть сомнения. А остальной текст макроса, кроме группы Параметры, это обычный вызов формы.
0
19 / 5 / 1
Регистрация: 27.12.2013
Сообщений: 127
05.02.2017, 17:57  [ТС]
mobile, да вот при преобразовании выдает ошибку: invalid call or argument..

Цитата Сообщение от mobile Посмотреть сообщение
Я впервые вижу такую группу Параметры
Я не уверен, но кажется эта фича появилась в 2016 Акцессе, раньше я ее вроде не замечал. Она появляется при вызове формы, которая связана с запросом, в котором ест,даже не параметры, а просто подстановки. Можно их при вызове переопределить на свои. Очень удобно. Вот и хотел узнать как это можно делать на vba, потому что макросы мне тоже не сильно нравятся. Но видимо, раз преобразователь ругается, наверно здесь какая-то засада.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2017, 18:38
Цитата Сообщение от scorpy Посмотреть сообщение
просто подстановки
Если Параметры это подстановки для запроса с параметрами, то их в запросе можно заменить на публичные функции в общем модуле или на контролы открытых форм.
Можно также определить параметры в QueryDef и затем воспользоваться запросом с параметрами например для создания рекодсета
Visual Basic
1
2
3
4
5
dim qdf as querydef, rst as dao.recordset 
set qdf=querydefs("Претензии-Подстановки")
qdf.parameters(0)=1
qdf.parameters(1)=5
set rst=qdf.openrecordset
Добавлено через 5 минут
Для открытия формы с параметрами можно также передать параметры в списке параметров команды OpenForm - опция WhereCondition
Visual Basic
1
docmd.OpenForm "Претензии-Подстановки", , ,"id1=0 and id2=5"
0
19 / 5 / 1
Регистрация: 27.12.2013
Сообщений: 127
05.02.2017, 22:14  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Visual BasicВыделить код
1 docmd.OpenForm "Претензии-Подстановки", , ,"id1=0 and id2=5"
Вот! Примерно это я и хотел получить. Но в таком виде почему-то параметры не принимает, и при запуске все равно запрашивает id1 и id2. А макрос работает.

Запрос выглядит примерно так:

SQL
1
2
3
4
5
PARAMETERS id1 Short, id2 Short;
SELECT ...........
FROM ............
GROUP BY .......
HAVING (((dbo_pretenz.Id_status) BETWEEN [id1] AND [id2]));
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
05.02.2017, 22:44
Тогда, считая, что форма запускается из какой-то другой формы, можно, как уже предлагалось, использовать назначение параметров для QueryDef, открыть рекордсет на нем и присвоить рекордсет форме:
1. Лишите форму источника. Все контролы остаются, но recordsource формы пустой.
2. На кнопке запуска формы пишете код
Visual Basic
1
2
3
4
5
6
7
Dim qdf As QueryDef, rst As dao.Recordset
Set qdf = CurrentDb.QueryDefs("Имя запроса-источника формы")
qdf.Parameters(0) = 0
qdf.Parameters(1) = 5
Set rst = qdf.OpenRecordset
DoCmd.OpenForm "Претензии-Подстановки"
Set Forms![Претензии-Подстановки].Form.Recordset = rst
Только вопрос конечно остается - если форма [Претензии-Подстановки] запускается из другой формы, то почему бы не ней, на этой другой форме не сделать поля для параметров запроса? Тогда запрос будет такой
SQL
1
2
3
4
5
PARAMETERS [Forms!ДругаяФорма!id1] Short, [Forms!ДругаяФорма!id2] Short;
SELECT ...........
FROM ............
WHERE dbo_pretenz.Id_status BETWEEN [Forms!ДругаяФорма!id1] AND [Forms!ДругаяФорма!id2]
GROUP BY .......
И практически никаких проблем с параметрами. Ну, может быть за исключение пустых полей, но это легко решаемо
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2017, 22:44
Помогаю со студенческими работами здесь

Access vba открыть форму
Добрый вечер, подскажите нужно кодом VBA открыть форму из формы: - для ввода новой записи; - для просмотра; - для редактирования. ...

Открыть форму с фильтром по записи через VBA
Помогите почему то не получается.Есть ленточная форма с клиентами klient рядом с каждым клиентом кнопка которая должна открыть другую форму...

VBA for Access Открыть форму с определенным значением определенного поля
На форме есть поле ввода "А" со значением "Х1". Задача запрограммировать кнопку "а1", чтобы открылась форма "Б" со...

Как открыть открыть окно с параметрами?
можно ли вообще как-то открыть окно (папка с файлами) с параметрами, а именно с определенными координатами на экране и в заданном размере?...

Открыть модальную форму, записать в контрол произвольный текст. VBA Access 7.0.
Добрый день. В проекте 2 формы. На одной размещена кнопка, по нажатию которой, пытаюсь открывать вторую форму в модальном режиме и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Old Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru