Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 18.12.2012
Сообщений: 59

Макрос или команда VBA!

24.10.2013, 16:28. Показов 2382. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. У меня такая ситуация:
Есть подчиненная форма, где отображаются клиенты и их заказы, необходимо составить отчет, в котором будет содержаться вся информация о заказе (отчет уже создан в конструкторе и все прекрасно отображает).
Допустим можно создать параметрический запрос в этом отчете, например по фамилии клиента, в результате, при выполнении запроса, переде нами откроется отчет о заказе именно того клиента, чью фамилию мы ввели, но задача немного иная:
Задача! (Или то, что должно произойти). Мы заходим в эту же форму, где у нас содержаться данные о клиентах и их заказах, выбираем любого клиента, выделяем в поле "фамилия" фамилию клиента, жмем на кнопку, которая располагается на этой же форме, после чего должен открыться отчет, где будет содержаться вся информация о заказе (который уже создан в конструкторе) именного это клиента - того чью фамилию мы выделили. Как это можно реализовать? т.е как бы должен выполняться параметрический запрос, но мы его не видим
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2013, 16:28
Ответы с готовыми решениями:

Макрос или VBA
Добрый день помогите пожалуйста с решением проблемы. Задача следующая есть: 1)таблица заказчики 2)Форма заказчики В таблице есть...

Приложению Access не удалось найти макрос или функцию VBA
пытался присвоить значению поля формы нулевое значение в свойствах "значение по умолчанию" и "условие на значение", сейчас,...

Скрытие столбцов таблицы подчиненной формы через VBA или макрос
Друзья, помогите решить проблему. Есть разделенная форма источник данных в которой . В форме есть поля: , еще несколько и поле ...

13
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,933
Записей в блоге: 4
24.10.2013, 16:36
а если у клиента 5-10-50-100 заказов
0
1 / 1 / 0
Регистрация: 18.12.2012
Сообщений: 59
24.10.2013, 16:41  [ТС]
Цитата Сообщение от shanemac51 Посмотреть сообщение
а если у клиента 5-10-50-100 заказов
Тогда можно сделать по коду заказа (они не повторяются), (хотя было разрешено выводить на печать сразу все заказы клиента)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.10.2013, 17:25
Поставленная вами цель замечательно, и просто, достигается указанием номера заказа в параметре WhereCondition команды вызова отчета OpenReport. При этом отчет строится на запросе заказов без всяких фильтров. Необходимый набор данных фильтруется при вызове.
0
1 / 1 / 0
Регистрация: 18.12.2012
Сообщений: 59
24.10.2013, 17:30  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Поставленная вами цель замечательно, и просто, достигается указанием номера заказа в параметре WhereCondition команды вызова отчета OpenReport. При этом отчет строится на запросе заказов без всяких фильтров. Необходимый набор данных фильтруется при вызове.
извините, можно более подробно?)
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.10.2013, 17:52
Предположим в форме, из которой вызывается отчет, есть поля КодКлиента, НомерЗаказа. Предположим также, что на форме есть группа переключателей (назовем ее grp, для определенности), в которой определены параметры отчета. Типа такого: 1-все заказы по клиенту, 2-выбранный заказ, 3-все заказы всех клиентов. Тогда, на кнопке вызова отчета, пишется такой код процедуры
Visual Basic
1
2
3
4
5
6
7
8
9
10
dim par
select case grp
  case 1 ' все заказы по клиенту
    par="КодКлиента=" & Me.КодКлиента
  case 2 ' выбранный заказ
    par="НомерЗаказа=" & Me.НомерЗаказа
  case 3 ' все заказы всех клиентов
    par=""
End select
docmd.openreport "ИмяОтчета", acViewPreview,,par
И, как я уже говорил, запрос-источник отчета не содержит фильтров, они подаются при вызове отчета. Но в запросе должны быть поля, по которым команда вызова (openreport) фильтрует содержание
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
24.10.2013, 17:57
mugla - Создаете макрос - к примеру - Открытие отчетов
Имя макроса - ОчетЗаказы
Макрокоманда - ОткрытьОтчет
В аргументах
Условие отбора - [КодЗаказа]=[Forms]![Заказы]![КодЗаказа]
где - [ИмяПоляОтчета]=[Forms]![ИмяФормы]![ИмяПоляФормы]
Ну это примерные имена, свои думается подставите сами.
Имя макроса привязываете в событиях к кнопке в форме
Хрясть по кнопке и открылся отчет только по текущему коду заказа
1
1 / 1 / 0
Регистрация: 18.12.2012
Сообщений: 59
24.10.2013, 18:03  [ТС]
Цитата Сообщение от kmv-puh Посмотреть сообщение
mugla - Создаете макрос - к примеру - Открытие отчетов
Имя макроса - ОчетЗаказы
Макрокоманда - ОткрытьОтчет
В аргументах
Условие отбора - [КодЗаказа]=[Forms]![Заказы]![КодЗаказа]
где - [ИмяПоляОтчета]=[Forms]![ИмяФормы]![ИмяПоляФормы]
Ну это примерные имена, свои думается подставите сами.
Имя макроса привязываете в событиях к кнопке в форме
Хрясть по кнопке и открылся отчет только по текущему коду заказа
Спасибо!
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
24.10.2013, 19:22
Цитата Сообщение от kmv-puh Посмотреть сообщение
mugla - Создаете макрос
alvk на вас нет :-) Получили бы подробное объяснение о макросах, как тупиковой ветви эволюции. И ведь он прав...
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
25.10.2013, 07:36
Цитата Сообщение от mobile Посмотреть сообщение
...alvk на вас нет...
Кликните здесь для просмотра всего текста
Ну я ваабще то сначала посмотрел, убедился, что его давно уже на форуме не было, вот и осмелился.

Так вроде сама тема по макрос звучала -
Цитата Сообщение от mobile Посмотреть сообщение
Макрос или команда VBA!
, одно решение хорошо, а 3 лучше Пусть будет, потом его всегда мастером в VBA преобразовать за 3-5 сек. можно, если что
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.10.2013, 09:28
Цитата Сообщение от kmv-puh Посмотреть сообщение
Пусть будет, потом его всегда мастером в VBA преобразовать за 3-5 сек. можно, если что
Макросы далеко не всегда реализуют эффективное решение. Поисковые макросы, к примеру, основаны на поиске с помощью методов формы, что начисто исключает индексы полей таблицы. И на сложных формах с большим количеством записей, поиск будет медленным. И таких примеров много. Вот, в том числе поэтому, макросов стараются избегать по мере возможности.
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
25.10.2013, 09:38
Цитата Сообщение от mobile Посмотреть сообщение
Макросы далеко не всегда реализуют эффективное решение.
В данном случае, как мне кажется, макрос подходит не хуже ВБА. Возможно вопрошающему он и более понятен, тем более других ответов не было с примерчиками, а только вопроси. Чем смог, тем и помог.
0
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
25.10.2013, 09:59
В мои задачи не входит лишать вас удовольствий. Работы с макросами. :-)

Но свою позицию я поясню:
1. Как уже было сказано, макросы не гарантируют самое эффективное решение задачи
2. Макросы, в большинстве своем, черный ящик. Не ясно, как решается задача в макросе. какими методами. И отсюда нет уверенности, что она решается правильно. Программист на макросах не может проследить ход решения. Есть только вход в макрос и конечная выдача результата. Внутренности не прослеживаются.
3. В макросах нет развитой системы поиска, локализации и обхода ошибок по условию. А иногда это просто необходимо
4. В достаточно сложных системах без ВБА не обойтись. Если же при этом еще использовать макросы, то получается, что надо отслеживать 2 объекта системы - макросы и модули. А это неудобно и потеря времени. Если расположить все управление в коде модулей, то все проще - заходи только в модули и ищи/правь, что надо.
2
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
25.10.2013, 10:41
Цитата Сообщение от mobile Посмотреть сообщение
...лишать вас удовольствий...
Уважаемый - mobile - Я совершенно не ярый макросник, все выше сказанное вами, понимаю и поддерживаю, стараюсь как можно меньше с макросиками иметь дело, но, прозвучало слово макрос и я как доброхот показал, как это можно сделать с их помощью (не удержался ) , извиняюсь за свои слова, что никто в ВБА пример не выложил, не видел, что вы уже написали Тока щас заметил.
Кликните здесь для просмотра всего текста
Про -
Цитата Сообщение от mobile Посмотреть сообщение
...как тупиковой ветви эволюции...
смею не согласиться.
Комары и мухи лично для меня вредные, надоедливые и не нужные насекомые, однако они наверное нравятся всяким птичкам или паучкам, да и мой котенок с ними очень весело и забавно играет, прыгая и рыча на них, что в сою очередь доставляет мне огромное удовольствие и поднимает настроение
По этому думаю, все что не абсолютное зло, то - ЭТО НУЖНО И ХОРОШО КОМУ ТО, ДЛЯ ЧЕГО ТО ЗЫЫ!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2013, 10:41
Помогаю со студенческими работами здесь

Команда Update в VBA
Здравствуйте, я продолжаю свое изучение VBA Таблицы Вставка инфы(id, предмет, описание) Справочник(id,описание) Нужно...

Команда к кнопки в MsgBox в VBA
В сообщении MsgBox есть две кнопки "Да" и "Нет" при нажатии на "Да" форма закрывается, при нажатии на "Нет" форма должна...

Преобразовать макрос в код VBA
Доброго времени суток. Имеется база, интерфейс которой функционирует с помощью макросов. Хотелось бы продолжить работу с базой...

Макрос vba замены данных в колонке
Помогите ПЛЗ написать макрос (vba), который в таблице заменяет Kont «DMV» на «ДМВ» . kontragent ID Kont K110 1 PIV 98234 2...

Есть ли такой макрос или команда си для вставки содержимого файла?
Нужно добавить содержимое файла в программу. Допустим есть файл 1.bin. Я его открываю WinHex и могу скопировать его содержимое для...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru