Рисунок 3. Конструктор запроса
Есть еще один способ создания запроса, который встроен в конструктор, – это написание запроса вручную на языке SQL. Однако текстовый редактор, предназначенный для этого имеет явно скудные возможности в плане удобства и наглядности оформления кода. Видимо этот способ не позиционировался разработчиками как основной[9].
Форма – это специальный объект-контейнер для других интерфейсных компонентов, таких как поля ввода и отображения данных, кнопки и др. На форме разработчик располагает компоненты для ввода, корректировки, просмотра и группировки данных, в зависимости от специфики приложения. Форму также можно создать двумя способами – в режиме конструктора и с помощью мастера. В первом случае разработчик располагает набором компонентов (при необходимости можно зарегистрировать свои ActiveX), которые свободно размещает на форме и задает их параметры. В режиме мастера пользователь просто выбирает таблицу, поля и стиль оформления, а форма генерируется автоматически.
Отчёт – объект, предназначенный для создания документа, который впоследствии может быть распечатан либо включён в документ другого приложения. Этот документ содержит результаты выборки из базы данных в виде структурированной информации (например в виде таблицы или списка). MS Access обладает богатыми возможностями по оформлению и форматированию отчетов. Те же два режима создания есть и у отчета. В режиме мастера у пользователя имеется возможность задать множество параметров, практически полностью определяющих желаемый внешний вид отчета. Для создания нестандартных отчетов лучше пользоваться конструктором.
Страницы – средство публикации данных в локальной сети или Internet. Создаваемая страница проектируется подобно форме (с некоторыми отличиями в используемых компонентах), при работе с ней можно не только просматривать, но и изменять данные в базе. После сохранения страницы как объекта в БД ее можно экспортировать в виде файла в формате HTML и использовать для доступа к данным через интернет-браузер.
Макрос – это объект, представляющий собой последовательность макрокоманд для автоматизации наиболее часто выполняемых действий при работе с базой. Макрокоманды выбираются из имеющего списка, а параметры задаются разработчиком. Выполнить макрос можно по нажатию на кнопку и программным методом в коде.
Модуль – контейнер программного кода на VBA. Для их редактирования и просмотра используется оболочка Редактора Visual Basic. Весь программный код приложения содержится в наборе модулей. Здесь он имеет то же смысловое значение, как и в любом языке программирования[3].
Это полный список объектов, которые можно хранить в базе данных MS Access, который, впрочем, похож и в других настольных СУБД подобного класса, например Paradox.
Какие возможности предоставляет Access в функциональном плане.
Ввод данных. Ввод данных может осуществляться следующими способами: вручную прямо в таблицу (сюда же относится вставка содержимого буфера обмена); вручную в поля формы; прямой импорт данных из других источников (базы Access, текстовые файлы, формат DBF, электронные таблицы, источники данных ODBC); программным методом, который может сочетать в себе любые средства, которые возможно реализовать на VBA.
Последний способ обладает наибольшей гибкостью и представляет практически неограниченные возможности, однако он самый сложный в реализации и требует определенного уровня знаний программирования.
2. Изменение данных. Редактирование возможно следующими способами: вручную прямо в таблице; в полях форм; в окне браузера, в котором загружена web-страница из БД; программным методом.
3. Вывод данных. Здесь Access предоставляет такие возможности: вывод на экран монитора в табличном виде, полях форм или отчетов; экспорт в другие форматы данных (те же, что при импорте); вывод на печать, в основном в виде отчетов; вывод данных в интернет-браузер с помощью объекта Страница в пределах определенной сети; программный экспорт и вывод информации.
4. Взаимодействие с другими источниками и потребителями информации. В этом плане Access может выступать как сервер или клиент автоматизации. Особенно прозрачно настраиваются связи с другими продуктами пакета Microsoft Office. Например вы можете иметь документ Microsoft Word, в котором будут присутствовать поля из БД Access, изменение данных в базе автоматически отображается в документе. Это позволяет создавать гибкие решения, интегрирующие данные в офисных средствах. 5. Использование базы данных MS Access другими приложениями. Такой вариант использует файл MDB как хранилище данных. Программа, которая обращается к данным, может быть написана на любом языке высокого уровня. В данном случае используются таблицы и запросы. О поддержании ссылочной целостности и актуальности данных следит ядро БД. Взаимодействие происходит через ODBC-драйвер Microsoft Jet Engine.
6. Средства создания приложений. Создание приложений на Access во многом подобно всем остальным средствам автоматизации Microsoft Office. Здесь используется интерпретируемый язык Visual Basic for Applications, что приводит, как и при использовании любого интерпретируемого языка, к определенному увеличению затрат процессорного времени и уменьшению скорости работы программ и обработки данных. Для успешной разработки необходимо знать объектную модель самого Access и особенности ее использования.
7. Особенности управления данными. При работе с Базами Данных в многопользовательском режиме возникают ситуации, когда необходимо ограничить число обращающихся пользователей к данным. Это делается для того, чтобы предотвратить одновременное обновление одной и той же записи, при глобальном обновлении данных или при техническом обслуживания самой Базы Данных.
Ядро БД Access обеспечивает три уровня блокировок:
Блокировка базы данных. На этом уровне блокировки к БД может обращаться только один пользователь. Такой уровень блокировки применяется для глобального изменения или обновления данных или при техническом обслуживании Базы Данных – сжатии.
Блокировка таблицы. На этом уровне блокировки к таблице может обращаться только один пользователь. Такой уровень блокировки применяется в тех случаях, когда необходимо обработать сразу несколько записей таблицы.
Блокировка страницы. На этом уровне к заблокированной странице может обращаться только один пользователь. Это самый нижний уровень блокировки. Процессор Microsoft Jet автоматически устанавливает блокировку страницы и не может контролироваться вашей программой. Страница данных может содержать несколько записей, размер его равен 26 кб. Блокировка страницы означает блокировку всех записей, находящейся на этой странице. Если длина записи – 512 байтов, то будет заблокированной 4 записи, а если 50 байтов то 40 записей. Точное число записей нельзя заранее ни определить, ни задать, т.к. таблица может содержать удаленные записи (которые удаляются только во время уплотнения).
Блокировка на уровне таблицы имеет два режима – пессимистический и оптимистический. По умолчанию устанавливается пессимистическая блокировка.
8. Администрирование. Преимущество монопольного режима работы фактически привело к вырождению функций администрирования БД и в связи с этим – к отсутствию инструментальных средств администрирования в обычном понимании этого слова в MS Access. Имеющиеся же средства позволяют сделать следующее: имеется возможность разделения базы данных Microsoft Access на два файла, в одном из которых содержатся таблицы, а в другом запросы, формы, отчеты, макросы, модули и ярлыки страниц доступа к данным. Это позволяет пользователям иметь доступ к общему источнику данных и при этом создавать свои собственные формы, отчеты и другие объекты, а также сократить сетевой трафик; существует возможность связывания таблиц из других баз данных Microsoft Access или иных источников. Например, может потребоваться использование таблицы из другой базы данных Microsoft Access, открытой для совместной работы по сети. Это особенно полезно при необходимости хранить все таблицы в одной базе данных на сетевом сервере, сохраняя формы, отчеты и другие объекты в отдельной базе данных, копии которой имеются у всех пользователей общей базы данных; средства репликации Microsoft Access, доступные в базе данных (.mdb) и в проекте (.adp), позволяют создавать реплики и синхронизировать их по требованию при работе в Microsoft Access; средства защиты и разграничения доступа. Простейшим способом защиты является установка пароля для открытия базы данных. База данных может быть зашифрована. При шифровании базы данных ее файл сжимается и становится недоступным для чтения с помощью служебных программ или текстовых редакторов. Дешифрование базы данных отменяет результаты операции шифрования. Наиболее гибкий и распространенный способ защиты базы данных называется защитой на уровне пользователей. Этот способ защиты подобен способам, используемым в большинстве сетевых систем. Однако как уже отмечалось, подбор пароля администратора не представляет сложности для специалиста по взлому; имеется возможность преобразования БД в формат более ранней версии MS Access для обеспечения совместимости в некоторых случаях; и наконец, средство для сжатия базы данных, которое стирает информацию об удаленных строках и уменьшает размер файла MDB на диске. Это приводит к большей производительности и в некоторых случаях может восстановить базу данных (например, после неожиданного отключения питания).
Также необходимо упомянуть, что в Access изначально имеются шаблоны типовых баз данных для автоматизации наиболее распространенных задач.
Рисунок 4. Шаблоны баз данных
Пользователь в интерактивном режиме Мастера выбирает данные, которые желает иметь в своей БД в соответствии с потребностями предприятия, а MS Access автоматически создает все необходимые объекты. В дальнейшем эту базу данных можно дорабатывать и расширять.