Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Access 2007

.pdf
Скачиваний:
116
Добавлен:
11.05.2015
Размер:
23.5 Mб
Скачать

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

Несмотря на то, что вас могут не беспокоить несколько появившихся ненужных предупреждающих сообщений, другие пользователи могут оказаться более доверчивыми. Они увидят сообщение системы безопасности и дважды подумают, что означает для них невозможность использования всех функциональных средств вашей БД. Они могут и просто не понять вопрос или не осознать необходимость щелкнуть кнопкой мыши переключатель Включить это содержимое.

В корпоративной среде системный администратор может настроить программу Access так, что она вообще не будет отображать предупреждение системы безопасности. Ваши макросы будут тихо отключены, и пользователь, работающий с вашей БД, даже не поймет, почему некоторые средства не работают.

Щелчок в тысячный раз переключателя Включить это содержимое может вывести из равновесия. Уж поверьте.

Центр управления безопасностью

Так вы не хотите видеть панель сообщений при каждом открытии БД? Программа Access предоставляет три способа, облегчающих работу с БД, содержащими опасные макросы.

Можно понизить уровень безопасности программы Access настолько, что опасные макросы будут разрешены. Такой подход не рекомендуется, т. к. он разрешает выполнение любого кода, включенного в вашу БД. Если случайно вы откроете БД, содержащую код, провоцирующий аварийные ситуации, никакой защиты у вас не будет.

Вы можете попросить программу Access доверять файлам БД, хранящимся в определенных папках на вашем компьютере (или на других компьютерах). Это самый удобный метод действия.

Вы можете попросить программу Access доверять базам данных, созданным надежным издателем. Этот вариант наиболее безопасен, но для его установки необходимо заплатить

другой компании для получения сертификата безопасности. По этой причине только большие компании, у которых полно денег, могут его себе позволить.

Все описанные действия выполняются в одном и том же окне — Центре управления безопасностью (рис. 15.11). Для вывода его на экран в диалоговом окне Параметры безопасности Microsoft Office (см. рис. 15.10) щелкните кнопкой мыши ссылку Открыть центр управления безопасностью. Или примените следующий, более обходной путь.

1.Выберите кнопку Office Параметры Access.

2.В окне Параметры Access выберите Центр управления безопасностью (Trust Center).

3.Щелкните мышью кнопку Параметры центра управления безопасностью (Trust Center Settings).

Центр управления безопасностью включает шесть разделов.

Раздел Надежные издатели (Trusted Publishers) позволяет сообщить Access, что следует доверять БД с цифровой подписью определенных людей. Для того чтобы воспользоваться этим средством, вашей компании нужно купить цифровой сертификат у такой компании,

511

как VeriSign (www.verisign.com). Затем, когда вы откроете подписанную БД, программа Access свяжется с компанией, выдавшей сертификат, и проверит его правомерность. Если он действителен, все законно, БД надежна и все опасные макросы разрешены. Цифровые сертификаты не рассматриваются в этой книге.

Рис. 15.11. Раздел Параметры макросов позволяет задать реакцию Access на опасные макросы. Вы можете выбрать включение или отключение опасных макросов и попросить Access уведомлять вас или не уведомлять об отключении чего бы то ни было

Примечание

Если заниматься раскопками длительное время, можно обнаружить, что у корпорации Microsoft есть средство (называемое makecert.exe) для генерации собственных цифровых сертификатов. Но это только тестовое средство, поскольку созданные с его помощью сертификаты не действуют на других компьютерах. Остерегайтесь — некоторые книги и Web-сайты по Access могут сбить с пути.

Раздел Надежные расположения (Trusted Locations) позволяет выбрать места на вашем жестком диске для хранения ваших БД. В этом случае Access будет доверять только вашим файлам БД и никому другому. Вы узнаете, как задавать надежное расположение, в следующем разделе.

Раздел Надстройки (Add-ins) разрешает определить, следует ли поддерживать дополнительные модули (add-ins) (мини-программы, расширяющие функциональные возможности Access), даже если они созданы не подтвержденным издателем. Обычно все дополнительные модули разрешены. (В конце концов, если вы не доверяете какому-либо дополнительному модулю, не устанавливайте его!) Эти установки применяются только в

512

корпоративной среде, где необходима серьезная защита Access для предотвращения даже намека на потенциальную проблему.

Раздел Параметры макросов (Macro Settings) позволяет настроить обработку макросов программой Access. Вы можете сделать ее более строгой (запретив все макросы, если они не принадлежат надежному издателю) или менее (разрешив все макросы, независимо от того, что они могут делать). Лучше всего оставить стандартный выбор Отключать все макросы с уведомлением.

Раздел Панель сообщений (Message Bar) позволяет задать, нужно ли программе Access отображать панель сообщений, когда программа блокирует опасные макросы в ненадежной БД.

Раздел Параметры конфиденциальности (Privacy Options) позволяет настроить несколько параметров, вообще не связанных с макросами. Можно задать необходимость проверки в Интернете обновлений файлов справки программы и отправки корпорации Microsoft информации о сбоях при обнаружении проблем (таким образом, Microsoft сможет найти ошибки и узнать, как улучшать программу Access в дальнейшем). Если вас беспокоят интернет-злоумышленники, можно отключить некоторые из этих средств. Чаще всего эти параметры необходимы лишь теоретикам конспирации.

Задание надежного расположения

Хорошо было бы иметь возможность различать ваши БД, содержащие абсолютно безопасный код, и все остальные? Для облегчения решения этой задачи в Access 2007 включено новое средство. Оно позволяет определить конкретную папку на вашем жестком диске как надежное расположение. Если открыть БД, хранящуюся в этой папке, Access автоматически будет доверять ей и разрешит опасные макросы.

Примечание

Конечно, вы должны гарантировать невозможность проникновения потенциально опасных БД в надежное расположение. Если вы пропустите их, то при открытии такой БД вы лишитесь всякой защиты. Но это требование вполне приемлемо, т. к. у приверженцев Access и так есть привычка помещать свои БД в отдельную папку.

Далее описаны действия, необходимые для создания нового надежного расположения.

1.Откройте окно Центр управления безопасностью (Trust Center).

Если вы его еще не открыли, следуйте указаниям, приведенным в предыдущем разделе.

2.Откройте раздел Надежные расположения (Trusted Locations).

Вы увидите окно, в котором перечислены все надежные расположения (рис. 15.12). Сначала в список включается одно расположение: папка ACCWIZ, которую программа Access использует для хранения своего мастера.

3.Убедитесь в том, что сброшен флажок Отключить все надежные расположения…

Если флажок установлен, сбросьте его, прежде чем добавлять новое надежное расположение.

4.Если вы хотите доверять папке в сети вашей компании или домашней сети, установите флажок Разрешить надежные расположения в моей сети.

Эта установка немного рискованна, поскольку сетевое расположение находится вне вашего контроля. Хакер может вставить зараженную вирусом БД в это расположение

513

незаметно для вас. Но если вы абсолютно уверены в безопасности сети (и другие пользователи, применяющие эту папку, не будут загружать БД из Интернета и помещать их в это расположение), можно не беспокоиться.

Рис. 15.12. В данном примере добавлено новое надежное расположение для папки FunkyAccessFiles, находящейся на жестком диске в папке My Documents

Рис. 15.13. Для настройки надежного расположения необходимо указать путь (щелкните мышью кнопку Обзор, чтобы найти нужную папку). Вы также можете решить, доверять ли вложенным папкам и вставить необязательное описание, которое выводится в списке надежных расположений

514

5.Щелкните мышью кнопку Добавить новое расположение (Add new location). Программа Access запросит некоторую дополнительную информацию (рис. 15.13).

6.Для включения нового расположения в список щелкните мышью кнопку ОК.

Расположение можно настраивать и удалять в любое время, выбрав его из списка и используя не требующие дополнительных пояснений кнопки Удалить и Изменить.

Три примера макросов

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

Полный перечень макрокоманд содержит множество действий, которые не так уж интересны или относятся только к проектам определенных типов (например, проекты Access, выходящие на БД SQL Server, которые будут рассматриваться в главе 18). В следующих разделах представлено несколько наиболее полезных макрокоманд. Вы можете проверить их на загружаемых из Интернета примерах к данной главе или испытать рецепты быстрого приготовления в своей собственной БД.

Поиск записи

Макрокоманда НайтиЗапись (FindRecord) работает аналогично средству Поиск на листе данных, которое обсуждалось в разд. "Поиск" главы 3. Все необходимую для поиска информацию вы задаете в аргументах.

Скажем, вы хотите искать слово "hay" (сено) в поле Diet (пищевой рацион) таблицы AnimalTypes. Далее перечислены макрокоманды, которые вы можете использовать.

ОткрытьФорму (OpenForm) для открытия формы, отображающей найденную запись (в данном случае AnimalTypes). Эту команду можно заменить макрокомандой ОткрытьТаблицу (OpenTable) и выполнять поиск на листе данных.

К ЭлементуУправления (GoToControl) для перехода к полю, в котором будет выполняться поиск (в данном случае Description). Если вы хотите применить поиск во всех полях, этот пункт можно пропустить.

НайтиЗапись (FindRecord) для поиска текста. Вы решаете, начать поиск с первой или с текущей записи, как в данном примере. Можно также выбрать поиск текста в любом месте поля или потребовать, чтобы значение поля целиком совпадало со строкой поиска.

Когда вы соберете все команды вместе, получится нечто похожее на приведенные в табл. 15.1 строки.

Таблица 15.1. Макрос поиска записи

 

 

 

 

Макрокоманда

Важные аргументы1

Описание

 

 

 

ОткрытьФорму

Имя формы: AnimalTypes

Открывает форму. Если она открыта,

 

 

переключает в существующее окно

 

 

 

1 Вы можете применять значения по умолчанию и во всех остальных аргументах.

515

Таблица 15.1 (окончание)

 

 

 

 

Макрокоманда

Важные аргументы2

Описание

 

 

 

КЭлементу Управления

Имя элемента: Diet

Переходит к полю Diet

 

 

 

НайтиЗапись

Образец поиска: ="hay"

Находит заданный текст в любой

 

Совпадение: С любой частью

части поля Diet, начиная с текущей

 

поля

записи

 

Только в текущем поле: Да

 

 

Первое вхождение: Нет

 

 

 

 

Примечание

Вы могли заметить, что аргумент Образец поиска макрокоманды НайтиЗапись начинается со знака равенства. Он принимает выражение. В данном примере выражение — не что иное, как текстовая константа, заключенная в кавычки. Но ее можно заменить более сложным выражением, включающим операции, функции и другие сложные средства.

Изюминка этого макроса состоит в том, что его можно использовать несколько раз в строке для поиска нескольких вхождений текста. Если форма AnimalTypes уже открыта, этот макрос просто переходит к следующему найденному вхождению текста.

Подсказка

Для большей гибкости можно создать макрос, который использует только команду Найти Запись. В этом случае вы сможете искать заданный текст в любом поле и в любой форме или таблице. Конечно, если попытаться выполнять этот макрос без открытых форм или таблиц, команда НайтиЗапись не сможет ничего сделать, и вы получите сообщение об ошибке.

Печать отчета

Вам нужен полезный макрос, автоматически выдающий часто используемый отчет? Программа Access предоставляет несколько возможностей. Далее приведены две из них.

Если вы хотите использовать стандартные параметры печати, можно напечатать отчет с помощью макрокоманды ОткрытьОтчет с аргументом Режим, имеющим значение Печать.

Если вы хотите отрегулировать качество печати, задать число копий и номера начальной и конечной страниц, вам нужно применить трехшаговый подход. Начать с команды ОткрытьОтчет, применить команду Печать (PrintOut) для отправки отчета и закончить командой Закрыть (Close) для корректного выхода.

Подсказка

Не пытайтесь применять любой из этих методов с ненадежными БД — Access не разрешит вам их применить.

Приведенная в табл. 15.2 последовательность макрокоманд демонстрирует второй метод. Этот макрос, используя отчет CheapskateCustomers (прижимистые клиенты), печатает две

2Вы можете применять значения по умолчанию и во всех остальных аргументах.

516

копии списка так называемых клиентов, которые на самом деле еще не заказали ни одной вещи.

Таблица 15.2. Макрос печати отчета

 

 

 

 

Макрокоманда

Важные аргументы 3

Описание

 

 

 

ОткрытьОтчет

Имя отчета: CheapskateCustomers

Открывает отчет (но как вы увидите,

 

 

он появится через пару секунд)

 

 

 

Печать

Число копий: 2

Можно использовать другие

 

 

аргументы для печати только

 

 

диапазона страниц или изменения

 

 

качества. Но нельзя выбрать принтер

Закрыть

Тип объекта: Отчет Имя объекта:

Нет смысла оставлять отчет открытым

 

CheapskateCustomers

после того, как он отправлен на печать

 

 

 

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

Подсказка

Есть еще одна возможность. Можно открыть таблицу или отчет с аргументом Режим, имеющим значение Просмотр (Print Preview). В этом случае данные на самом деле не посылаются на принтер, но приближают на шаг к этой операции. Это лучший выбор, если вам нужно выбрать принтер, убедиться в корректности данных и проверить объем предназначенной для печати информации. Он также работает с ненадежными БД.

Отправка данных по электронной почте

Одна из скрытых возможностей макроязыка программы Access — команда ОтправитьОбъект (SendObject) — универсальная команда для отправки сообщений электронной почты.

На профессиональном уровне. ОтправитьОбъект работает с вашей программой элекронной почты

Макрокоманда ОтправитьОбъект использует стандарт, именуемый MAPI (Messaging Application Programming Interface, интерфейс прикладного программирования для электронной почты), т. е. позволяет вам применять любую Windows-программу электронной почты. Неважно, предпочитаете вы Outlook, Eudora, Pegasus или что-то более экзотическое — ОтправитьОбъект способна запустить вашу программу электронной почты и использовать ее для отправки сообщения. Если вы не знаете, какая программа используется по умолчанию на вашем компьютере для отправки электронной почты, это легко установить.

3 Вы можете использовать значения по умолчанию для всех остальных аргументов.

517

Откройте Панель управления, выберите пиктограмму Свойства обозревателя и щелкните кнопкой мыши вкладку Программы. Вы найдете на ней ваш стандартный Webобозреватель, приложение электронной почты и несколько менее широко используемых приложений, относящихся к Интернету (например, просмотр групп новостей).

Команда ОтправитьОбъект на удивление универсальна. Ее можно применять в следующих случаях.

Для отправки по электронной почте объекта БД другому пользователю. Объект БД преобразуется в другой выбранный вами формат, например электронную таблицу Excel, Web-страницу на языке HTML или даже подготовленный для вывода на печать PDF-файл (если вы установили свободно распространяемый дополнительный модуль "Save As PDF" (сохранить как PDF-файл), описанный

вразд. "Получение дополнительного модуля "ave As PDF'" главы 10). Объект, который вы хотите послать, задается с помощью аргументов Тип объекта и

Имя объекта.

Для отправки по электронной почте текущего объекта БД. В этом случае вы получаете неограниченно гибкий макрос, способный отправить любые данные, которые вы просматриваете в настоящий момент. Единственное ограничение — знание типа объекта, который планируется отправить, перед вами полная таблица, запрос, выделяющий важную информацию, или отчет с группировкой и промежуточными итогами. Просто задайте соответствующий тип

варгументе Тип объекта, а аргумент Имя объекта оставьте пустым.

Для отправки обычного электронного сообщения. Для этого оставьте пустыми оба аргумента: Тип объекта и Имя объекта. Вы можете написать сообщение в свойстве Сообщение (Message Text). Этот метод удобен для оповещения кого бы то ни было о том, что вы вставили новые данные или внесли значительные корректировки.

Примечание

Команда ОтправитьОбъект может отправлять только по одному объекту. Если нужно отправить несколько объектов БД, придется применить ее несколько раз. Для отправки трех отчетов вам понадобятся три электронных сообщения с тремя вложенными файлами. В некоторых случаях вы сможете обойти это ограничение, создав изобретательный запрос, который собирает вместе всю нужную вам информацию и позволяет отправить один комплект результатов.

Самое приятное то, что команду ОтправитьОбъект можно использовать в ненадежных БД при соблюдении следующего правила: у аргумента Изменение сообщения (Edit Message) должно быть значение Да. В этом случае, когда выполняется макрос, у вас есть последняя возможность просмотреть сообщение, изменить любой текст и отменить его отправку, если чем-то не довольны. Если же у аргумента Изменение сообщения значение Нет, макрокоманда ОтправитьОбъект отправляет сообщение, не предоставляя возможности его просмотра и корректировки. Такое поведение считается рискованным, поэтому программа Access не допускает его в ненадежных БД.

В приведенном в табл. 15.3 макросе два запроса с данными о продажах преобразуются в электронные таблицы Excel. Затем они посылаются ведущим руководителям.

518

Таблица 15.3. Макрос отправки данных по электронной почте

 

 

 

Макрокоманда

Важные аргументы4

Описание

 

 

 

ОтправитьОбъект

Тип объекта: Запрос Имя объекта:

Отправляет сообщение

 

MonthlySalesTotals

электронной почты руководителю

 

Формат вывода: Excel Workbook

headhon-cho@acme.com с данными

 

(.xlsx)

из запроса MonthlySalesTotals

 

Кому: headhoncho@acme.com

(месячные итоги продаж),

 

Тема: Monthly Update

преобразованного в рабочую книгу

 

Сообщение: Здесь представлены

Excel. Тема сообщения и его текст

 

самые свежие объемы продаж,

заданы в аргументах Тема и

 

непосредственно из применяющей

Сообщение. У вас есть воз-

 

макросы БД Access. Вы получите

можность подправить их перед от-

 

итоги по клиентам в отдельном

правкой сообщения. На рис. 15.14

 

электронном письме

показано это действие

 

Изменение сообщения: Да

 

 

 

 

ОтправитьОбъект

Тип объекта: Запрос Имя объекта:

Отправляется второе электронное

 

CustomerSalesTotals

сообщение руководителю headhon-

 

Формат вывода: Excel Workbook

cho@acme.com с данными из запро-

 

(.xlsx)

са CustomerSalesTotals

 

Кому: headhoncho@acme.com

 

 

Тема: Monthly Update

 

 

Сообщение: Здесь представлены

 

 

итоги по клиентам

 

 

Изменение сообщения: Да

 

 

 

 

Если вы технически грамотны, то можете отправить сообщения по электронной почте одновременно огромному количеству людей. Самый простой вариант — вставить полный список адресов в аргументы Кому, Копия или СК, разделив адреса точкой с запятой (;). Но лучше применить список рассылки. Этот метод может меняться в зависимости от используемой почтовой программы, но в программах Outlook и Outlook Express его использовать легко — просто вставьте имя списка рассылки в поле Кому. Если вы создали список, названный FairweatherFriends (друзья хорошей погоды), введите слово FairweatherFriends в аргумент Кому.

Подсказка

Не хватает места для редактирования сообщения? Нажмите комбинацию клавиш <Shift>+<F2> во время редактирования свойства Сообщение для отображения Окна ввода большего размера, в котором видны одновременно несколько строк.

4 Вы можете использовать значения по умолчанию для всех остальных аргументов.

519

Рис. 15.14. Когда у свойства Изменение сообщения значение Да, у вас есть последняя возможность просмотреть (или изменить) сообщение перед отправкой

Управление макросами

По мере создания все большего числа привлекательных макросов возникает необходимость в их организации, гарантирующей, что нужные макросы окажутся под рукой, как только они понадобятся. У программы Access есть несколько инструментов, помогающих справиться с этой задачей, включая группы макросов, объединяющие связанные макросы в один объект для облегчения хранения, и комбинации клавиш для макросов, позволяющие запускать подходящий макрос именно тогда, когда он нужен.

Группы макросов

В среднем макрос содержит только от трех до пяти команд. Но средняя БД, применяющая макросы, быстро накапливает десятки макросов. Управлять этими крошечными программами порой трудно, особенно если нужно помнить, что делает каждый из них.

Можно применить группу макросов. Внешне группа макросов выглядит как один макрос, поскольку хранится в едином объекте БД. Но группа макросов может содержать неограниченное количество отдельных макросов, у каждого из которых есть свое имя. После того как вы поместили связанные макросы в одну группу, вам будет легче найти нужный макрос, когда придет время его редактировать.

Подсказка

Профессионалы Access применяют группы макросов для группировки в одном месте макросов, используемых в одной форме, работающих с одной таблицей или выполняющих однотипные задачи (например, печать или редактирование записей).

520

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]