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

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

05.02.2017, 17:23. Показов 8334. Ответов 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
26827 / 14507 / 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
26827 / 14507 / 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
26827 / 14507 / 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
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru