Отправка данных по электронной почте
Одна из скрытых возможностей макроязыка программы Access — команда ОтправитьОбъект(SendObject) — универсальная команда для отправки сообщений электронной почты.
На профессиональном уровне.
ОтправитьОбъект работает с вашей программой элекронной почты
Макрокоманда ОтправитьОбъект использует стандарт, именуемый MAPI (Messaging Application Programming Interface, интерфейс прикладного программирования для электронной почты), т. е. позволяет вам применять любую Windows-программу электронной почты. Неважно, предпочитаете вы Outlook, Eudora, Pegasus или что-то более экзотическое — ОтправитьОбъектспособна запустить вашу программу электронной почты и использовать ее для отправки сообщения. Если вы не знаете, какая программа используется по умолчанию на вашем компьютере для отправки электронной почты, это легко установить.
3 Вы можете использовать значения по умолчанию для всех остальных аргументов.
Откройте Панель управления,выберите пиктограмму Свойства обозревателяи щелкните кнопкой мыши вкладку Программы.Вы найдете на ней ваш стандартный Web-обозреватель, приложение электронной почты и несколько менее широко используемых приложений, относящихся к Интернету (например, просмотр групп новостей).
Команда ОтправитьОбъектна удивление универсальна. Ее можно применять в следующих случаях.
■ Для отправки по электронной почте объекта БД другому пользователю. Объект БД преобразуется в другой выбранный вами формат, например электронную таблицу Excel, Web-страницу на языке HTML или даже подготовленный для вывода на печать PDF-файл (если вы установили свободно распространяемый дополнительный модуль "Save As PDF" (сохранить как PDF-файл), описанный в разд. "Получение дополнительного модуля "ave As PDF'" главы 10). Объект, который вы хотите послать, задается с помощью аргументов Тип объектаи Имя объекта.
■ Для отправки по электронной почте текущего объекта БД. В этом случае вы получаете неограниченно гибкий макрос, способный отправить любые данные, которые вы просматриваете в настоящий момент. Единственное ограничение — знание типа объекта, который планируется отправить, перед вами полная таблица, запрос, выделяющий важную информацию, или отчет с группировкой и промежуточными итогами. Просто задайте соответствующий тип в аргументе Тип объекта,а аргумент Имя объектаоставьте пустым.
■ Для отправки обычного электронного сообщения. Для этого оставьте пустыми оба аргумента: Тип объектаи Имя объекта.Вы можете написать сообщение в свойстве Сообщение(Message Text). Этот метод удобен для оповещения кого бы то ни было о том, что вы вставили новые данные или внесли значительные корректировки.
Примечание
Команда ОтправитьОбъектможет отправлять только по одному объекту. Если нужно отправить несколько объектов БД, придется применить ее несколько раз. Для отправки трех отчетов вам понадобятся три электронных сообщения с тремя вложенными файлами. В некоторых случаях вы сможете обойти это ограничение, создав изобретательный запрос, который собирает вместе всю нужную вам информацию и позволяет отправить один комплект результатов.
Самое приятное то, что команду ОтправитьОбъектможно использовать в ненадежных БД при соблюдении следующего правила: у аргумента Изменение сообщения(Edit Message) должно быть значение Да. В этом случае, когда выполняется макрос, у вас есть последняя возможность просмотреть сообщение, изменить любой текст и отменить его отправку, если чем-то не довольны. Если же у аргумента Изменение сообщениязначение Нет, макрокоманда ОтправитьОбъектотправляет сообщение, не предоставляя возможности его просмотра и корректировки. Такое поведение считается рискованным, поэтому программа Access не допускает его в ненадежных БД.
В приведенном в табл. 15.3 макросе два запроса с данными о продажах преобразуются в электронные таблицы Excel. Затем они посылаются ведущим руководителям.
Таблица 15.3. Макрос отправки данных по электронной почте
Макрокоманда | Важные аргументы4 | Описание |
ОтправитьОбъект | Тип объекта: Запрос Имя объекта: MonthlySalesTotals Формат вывода: Excel Workbook (.xlsx) Кому: [email protected] Тема: Monthly Update Сообщение: Здесь представлены самые свежие объемы продаж, непосредственно из применяющей макросы БД Access. Вы получите итоги по клиентам в отдельном электронном письме Изменение сообщения: Да | Отправляет сообщение электронной почты руководителю [email protected] с данными из запроса MonthlySalesTotals (месячные итоги продаж), преобразованного в рабочую книгу Excel. Тема сообщения и его текст заданы в аргументах Тема и Сообщение. У вас есть возможность подправить их перед отправкой сообщения. На рис. 15.14 показано это действие |
ОтправитьОбъект | Тип объекта: Запрос Имя объекта: CustomerSalesTotals Формат вывода: Excel Workbook (.xlsx) Кому: [email protected] Тема: Monthly Update Сообщение: Здесь представлены итоги по клиентам Изменение сообщения: Да | Отправляется второе электронное сообщение руководителю [email protected] с данными из запроса CustomerSalesTotals |
Если вы технически грамотны, то можете отправить сообщения по электронной почте одновременно огромному количеству людей. Самый простой вариант — вставить полный список адресов в аргументы Кому, Копияили СК,разделив адреса точкой с запятой (;). Но лучше применить список рассылки. Этот метод может меняться в зависимости от используемой почтовой программы, но в программах Outlook и Outlook Express его использовать легко — просто вставьте имя списка рассылки в поле Кому.Если вы создали список, названный FairweatherFriends (друзья хорошей погоды), введите слово FairweatherFriends в аргумент Кому.
Подсказка
Не хватает места для редактирования сообщения? Нажмите комбинацию клавиш <Shift>+<F2> во время редактирования свойства Сообщениедля отображения Окна вводабольшего размера, в котором видны одновременно несколько строк.
4 Вы можете использовать значения по умолчанию для всех остальных аргументов.
Рис. 15.14.Когда у свойства Изменение сообщениязначение Да, у вас есть последняя возможность просмотреть (или изменить) сообщение перед отправкой
Управление макросами
По мере создания все большего числа привлекательных макросов возникает необходимость в их организации, гарантирующей, что нужные макросы окажутся под рукой, как только они понадобятся. У программы Access есть несколько инструментов, помогающих справиться с этой задачей, включая группы макросов, объединяющие связанные макросы в один объект для облегчения хранения, и комбинации клавиш для макросов, позволяющие запускать подходящий макрос именно тогда, когда он нужен.
Группы макросов
В среднем макрос содержит только от трех до пяти команд. Но средняя БД, применяющая макросы, быстро накапливает десятки макросов. Управлять этими крошечными программами порой трудно, особенно если нужно помнить, что делает каждый из них.
Можно применить группу макросов. Внешне группа макросов выглядит как один макрос, поскольку хранится в едином объекте БД. Но группа макросов может содержать неограниченное количество отдельных макросов, у каждого из которых есть свое имя. После того как вы поместили связанные макросы в одну группу, вам будет легче найти нужный макрос, когда придет время его редактировать.
Подсказка
Профессионалы Access применяют группы макросов для группировки в одном месте макросов, используемых в одной форме, работающих с одной таблицей или выполняющих однотипные задачи (например, печать или редактирование записей).
Для создания группы макросов просто создается макрос, использующий столбец Имя макроса.Обычно столбец Имя макросаскрыт, поскольку все макрокоманды — это компоненты одного и того же макроса. Но при создании группы макросов следует выбрать на ленте Работа с макросами | Конструктор→Показать или скрыть→Имена макросов(Macro Tools | Design → Show/Hide → Macro Names) для отображения этого столбца.
Тут есть хитрость. Каждый раз, когда вы начинаете создавать новый макрос, вы вводите его имя в столбец Имя макроса.Таким образом, можно накладывать один макрос на другой до тех пор, пока вы помните о необходимости смены имени. Можно даже использовать пустые строки для отделения макросов в группе и облегчения чтения и понимания макросов. Лучший способ понять — посмотреть пример группы макросов на рис. 15.15.
Рис. 15.15.Эта группа макросов объединяет три макроса, перечисляя все их макрокоманды одну за другой. В начале каждого нового макроса в столбце Имя макросапоявляется его имя. Обратите внимание на пустые строки и многочисленные комментарии. Программа Access игнорирует эти детали
Подсказка
Легче всего применять группы к коротким макросам (макросам, у которых не слишком много макрокоманд). Когда необходимо редактировать макрос, можно использовать удобную команду ленты Вставить строки(Insert Rows) для увеличения доступного свободного пространства.
У каждого макроса, включенного в группу, двухчастное имя. Первая часть — имя группы макросов, а вторая часть — любой текст, который вы ввели в столбец Имя макроса.Полное имя макроса PrintCheapskates(печать прижимистых клиентов) в группе макросов Basic-Macros(основные макросы), показанного на рис.. 15.15, — BasicMacros.PrintCheapskates.При запуске макроса следует использовать его полное имя.
Одно из ограничений групп макросов заключается в невозможности использования их из области переходов. Если щелкнуть правой кнопкой мыши группу макросов в области переходов и выбрать команду Выполнить(Run), программа Access выполнит только первый макрос в группе. Для запуска остальных макросов следует выбрать на ленте Работа с базами данных→Макрос→Выполнить макрос(Database Tools → Macro → Run Macro). Затем можно ввести правильное двухчастное имя или выбрать его из раскрывающегося списка (как показано на рис. 15.16).
Рис. 15.16.В данном примере программа Access готова к выполнению макроса MailResultsиз группы BasicMacros
Примечание
Если вам кажется, что этот способ запуска потребует больших усилий, не волнуйтесь. Большая часть макросов не запускается из области переходов, а связывается с формой, а в этом случае полное имя не приведет к дополнительной работе. Но если у вас есть макрос, который вы определенно хотите запускать из области переходов, группировка макросов в этой ситуации — не ваш путь.