MS доступ к условному содержанию отчета для DoCmd.SendObject acSendReport - PullRequest
0 голосов
/ 11 февраля 2019

Я отправляю электронные письма из MS Access через outlook, используя следующую команду

DoCmd.SendObject acSendReport, report_name, acFormatPDF, my_email, , my_email, "Weekly", "Sending you weekly report", True

, где report_name - это отчет, основанный на запросе qQuickReport.

Но я не хочу отправлять все записи всем получателям.Каждый получатель должен получать свои записи из отчета.Создание 5 отдельных запросов и 5 форм на основе этих форм является одним из вариантов, но я бы предпочел сделать это «правильно».Поэтому я планирую зациклить идентификатор получателя в запросе qQuickReport, добавив следующее условие:

WHERE (((qALL.Koordinator)=[whichone]))

и установить параметр [whichone] с помощью кода VBA следующим образом:

DoCmd.SetParameter "whichone", "4"

Работают следующие две строкихорошо, если я открываю только запрос qQuickReport, он содержит только записи, принадлежащие получателю 4:

DoCmd.SetParameter "whichone", "4"
DoCmd.OpenQuery ("qQuickReport")

Но если я пытаюсь использовать его следующим образом:

DoCmd.SetParameter "whichone", "4"
DoCmd.SendObject acSendReport, report_name, acFormatPDF, my_email, , my_email, "Weekly", "Sending you weekly report", True

, он просит меня ввестипараметр [whichone] в интерактивном режиме (окно ввода значения параметра), поэтому это означает, что запрос по отчету не получил значение параметра [which].

Я что-то не так делаю или просто Setparameter with SendReport неподдерживается?

Спасибо, PH

1 Ответ

0 голосов
/ 11 февраля 2019

Как указано в документах , DoCmd.SetParameter доступно только для BrowseTo, OpenForm, OpenQuery, OpenReport или RunDataMacro.Это не поддерживается для SendObject

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...