Работа с Access
Исходное окно Access 97 отличается простотой и лаконичностью. Шесть вкладок этого окна представляют шесть видов объектов, с которыми работает программа (рис. III.82).
Рис.
111.82. Окно базы данных Access 97Таблицы — основные объекты базы данных. В них хранятся данные. Реляционная база данных может иметь много взаимосвязанных таблиц. Функция таблиц — организация данных. Эта функция включает создание таблиц и предоставление пользователю возможности работать с их данными в классическом табличном формате (со строками и столбцами). Соответствующий режим называется в Access режимом Таблицы (рис. III.83).
Рис. III.83. Режим Таблицы
Свойства таблицы описывают таблицу в целом. Задавать их необязательно. Если же вы хотите определить какие-либо из свойств, это можно сделать, введя их значения в текстовые поля диалогового окна свойств таблицы. Для этого нужно в режиме конструктора таблицы щелкнуть на кнопке Свойства панели инструментов. Свойств у таблиц пять.
? Свойство Описание позволяет ввести дополнительное пояснение о назначении таблицы. Если в окне базы данных выбрать команду Вид | Таблица, рядом с названием каждой таблицы появится ее описание. Это свойство удобно использовать также при запуске архивариуса для создания описаний объектов базы данных.
? Свойство Условие на значение позволяет в случае необходимости указать условие для проверки правильности вводимых в таблицу данных. Вводимое в это поле выражение может включать несколько полей таблицы. Это условие относится не к конкретному полю, а к таблице целиком и проверяется каждый раз при вводе или изменении данных.
? Свойство Сообщение об ошибке предназначено для задания сообщения, которое будет выводиться каждый раз, когда пользователь попытается ввести в таблицу данные, не соответствующие условию свойства Условие на значение.
? Свойство Фильтр может содержать определение фильтра, накладываемого на таблицу сразу после ее открытия.
? Свойство Порядок сортировки позволяет задать порядок сортировки записей таблицы после ее открытия.
Еще одно важное диалоговое окно Access, доступное в режиме Конструктора таблиц, — это окно Индексы, которое позволяет указать первичный ключ таблицы и набор индексов для сортировки данных.
Каждое поле таблицы тоже обладает набором свойств. Первые четыре свойства из них задаются в верхней части окна Конструктора — в таблице с перечнем полей (рис. III.84).
Рис. III.84. Настройка свойств выбранного поля
Ниже перечислены четыре основных свойства полей таблицы.
? Имя поля. Каждое поле таблицы обязательно должно иметь имя. Имена могут иметь длину до 64 символов, могут содержать пробелы (но не ведущие) и знаки пунктуации. Точки, восклицательные знаки и квадратные скобки в именах полей не допускаются. Имена полей в таблице должны быть уникальными: два поля одной таблицы не могут иметь одинаковые имена.
? Тип данных. Тип данных каждого поля тоже нужно указать обязательно. Тип данных выбирается из значений второго столбца таблицы полей из раскрывающегося списка. Перечень допустимых типов данных фиксирован и включает следующие варианты: Текстовый, Поле MEMO, Числовой, Дата/время, Денежный, Счетчик, Логический, Поле объекта OLE, Еиперссылка, Мастер подстановок.
? Описание. Значение этого свойства задавать необязательно. Введенный здесь текст будет появляться в строке состояния после выбора пользователем соответствующего поля в режиме Таблицы.
? Ключевое поле. Чтобы задать это свойство, выделите поля, которые вместе будут составлять первичный ключ, и щелкните на кнопке Ключевое поле панели инструментов. Слева от названий выбранных полей появятся изображения ключа.
Кроме этих четырех свойств, у каждого поля есть еще ряд дополнительных, они перечислены в нижней части окна конструктора.
Некоторые из этих дополнительных свойств зависят от типа данных выбранного поля и значения их или вводятся вручную, или выбираются из раскрывающихся списков. (На вкладке Подстановка для полей подстановок можно указать, какие элементы управления будут соответствовать этим полям в формах, — поля, списки или поля со списками.) Вкладка Общие позволяет указать значения следующих свойств полей таблиц.? Размер поля. Для текстовых полей это свойство определят их длину и вводится вручную. Размер числовых полей выбирается из раскрывающегося списка. У полей типа Поле MEMO, Дата/время, Денежный, Логический, Поле объекта OLE, Еиперссылка, Мастер подстановок этого свойства нет.
? Формат поля. Это свойство определяет, в каком формате данные поля будут выводиться на экран. Значение свойства можно выбрать из стандартного набора форматов. Можно задать и свой собственный формат, введя его в текстовое поле. У полей типа Поле объекта OLE этого свойства нет.
? Число десятичных знаков. Для этого свойства числовых полей и полей счетчика можно выбрать из раскрывающегося списка значение Авто или фиксированное количество знаков дробной части, а можно ввести значение и вручную. Поля других типов этого свойства не имеют. От указанного здесь значения, как и от значения свойства Формат поля, зависит то, как данные будут отображаться на экране (на сами данные значение этого свойства не влияет).
? Маска ввода. Значением этого свойства может быть символьная строка, подобная той, которая определяет формат поля. Только маска ввода определяет, как данные будут вводиться или редактироваться. Для создания масок ввода полей типа Текстовый, Числовой, Дата/время и Денежный есть специальный мастер, которого можно запустить с помощью кнопки с троеточием (она появится справа, если щелкнуть мышью на нужном свойстве). Этот мастер предложит вам целый список готовых масок ввода, подходящих, например, для ввода номеров телефона, времени, дат, индексов и т. и.
? Подпись. Если вы хотите, чтобы в режиме Таблицы в качестве заголовка поля выводилось не его имя, а более удобная или понятная надпись, именно сюда ее и нужно ввести.
Для подписей никаких ограничений не существует — они могут содержать любые символы, включая точки, восклицательные знаки и квадратные скобки.? Значение по умолчанию. Значение, которое вы введете для этого свойства, Access будет автоматически вносить в указанное поле каждой добавляемой в таблицу записи. Очень часто в качестве значения по умолчанию для полей типа Дата/время используется текущая дата. Для полей типа Поле объекта OLE и Счетчик значений по умолчанию быть не может.
? Условие на значение. Здесь вводится условие (в виде выражения Access), которое будет проверяться каждый раз, когда значение поля будет изменяться пользователем. Свойство Условие на значение у полей типа Поле MEMO, Поле объекта OLE и Счетчик отсутствует.
? Сообщение об ошибке. Если введенное в таблицу значение не соответствует условию проверки (определенному в свойстве Условие на значение), пользователь увидит в строке состояния указанное здесь сообщение.
? Обязательное поле. Если для этого свойства задать значение Да, пользователь обязательно должен ввести значение этого поля для каждой добавляемой им в таблицу записи. Такая установка эквивалентна заданию для свойства Условие на значение значения Is Not Null. Для полей, являющихся частью первичного ключа, задавать это свойство необязательно — пустые значения (Null-значения) в них не допускаются по определению.
? Пустые строки. Это свойство есть только у текстовых, MEMO-полей и гиперссылок. Его значение Нет означает, что в поле должен быть введен хотя бы один символ. В Access между пустой строкой и значением поля Null существует определенная разница, поэтому свойства Пустые строки и Обязательное поле используются независимо.
? Индексированное поле. Свойство определяет индекс, создаваемый по одному полю. Это свойство может иметь одно из трех значений, выбираемых из раскрывающегося списка: Нет, Да (допускаются совпадения), Да (совпадения не допускаются). Последнее означает, что никакие две записи таблицы не могут иметь одинаковые значения данного поля.
Для удаления индекса, созданного по одному полю, достаточно свойству Индексированное поле присвоить значение Нет. Нельзя индексировать таблицы по полям типа Поле MEMO, Поле объекта OLE и Еиперссылка.? Новые значения. Это свойство есть только у полей-счетчиков. Оно определяет способ вычисления новых значений для добавляемых в таблицу записей: последовательные (максимальное из значений поля +1) или случайные числа. Случайные значения счетчика, как правило, используются при репликации данных, чтобы при добавлении записей в реплики одной и той же таблицы значения их ключевых полей не совпадали.
Запросы — это специальные структуры, предназначенные для обработки данных базы. С помощью запросов данные упорядочивают, фильтруют, отбирают, изменяют, объединяют, т. е. обрабатывают. Основная функция запросов — связывание таблиц и отбор данных. Здесь речь идет о возможности связывать между собой данные нескольких таблиц и отбирать их таким образом, чтобы создавать новые временные таблицы с необходимыми сведениями. (Эти временные таблицы могут храниться в памяти компьютера или во временных файлах.) Для этой цели в Access используются запросы, а результирующие временные таблицы называются объектами Recordset. Часто объекты Recordset называют виртуальными таблицами, поскольку они хранят результаты выполнения запросов не в базе данных, а в памяти компьютера.
Именно возможность устанавливать связи между таблицами отличает реляционные СУБД от простых приложений для обработки списков, называемых процессорами плоских файлов. Объект Recordset — это не просто объединение данных нескольких таблиц; хранящиеся в нем данные соответствуют определенному критерию отбора. Более того, из одних значений путем вычислений могут быть получены новые. Наиболее часто используется запрос на выборку. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или нескольких таблиц и выводятся в определенном порядке.
Существуют так называемые перекрестные запросы.
В перекрестном запросе отображаются результаты статистических расчетов (такие как суммы, количество записей и средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй — в верхней строке.Формы — это объекты, с помощью которых в базу вводят новые данные или просматривают имеющиеся. Таким образом, их функция — ввод и редактирование данных. Они позволяют работать с данными не только в режиме таблицы, но и использовать удобные формы для ввода, редактирования и просмотра данных (рис. Ш.85). Режим формы является альтернативой табличному режиму работы с данными, и многие пользователи предпочитают именно его, особенно когда полей в таблице очень много. Другими преимуществами формы являются возможность более удобного визуального представления каждой записи, использование для работы различных вспомогательных элементов интерфейса, а также печать форм в качестве самостоятельных документов.
Отчеты — это формы "наоборот". С их помощью данные выдаются в приемлемом для пользователя виде, т. е. их функция состоит в представлении данных. Эта функция обеспечивает создание отчетов, в которых всевозможные итоговые данные таблиц представлены в удобном и наглядном виде. В конечном счете, именно отчеты являются целью любой системы учета данных.
Все эти четыре функции Access, которые реализуются с помощью таблиц, запросов, форм и отчетов, образуют основную структуру организации данных. Все эти функции доступны через команды меню или кнопки панелей инструментов. В любом режиме, позволяющем распечатывать данные, доступна кнопка Предварительный просмотр, позволяющая просмотреть, как будет выглядеть напечатанный лист.
Рис. III.85. Внешний вид формы
Следующие четыре вспомогательных средства служат для выполнения перечисленных основных функций.
Макросы — это самые простые средства автоматизации выполнения повторяющихся операций. Если какие-то операции с базой производятся особенно часто, имеет смысл сгруппировать несколько команд в один макрос и назначить его выделенной комбинации клавиш. Создаются они в результате выбора возможных действий (называемых макрокомандами) из стандартного списка. Выбранные макрокоманды образуют перечень последовательно выполняемых действий, который и называется макросом. Например, с помощью макроса можно открыть, распечатать и закрыть отчет. В предыдущих версиях Access макросы были главным средством автоматизации, но в Access 97 они уступили место языку программирования Visual Basic for Applications (VBA). Использовать макросы больше не рекомендуется, поскольку они оставлены только для совместимости с предыдущими версиями и в дальнейшем могут больше не поддерживаться.
Модули — это программные процедуры, написанные на языке Visual Basic for Applications. Если для удовлетворения требований заказчика стандартных средств Access не хватает, программист может расширить возможности системы, написав для этого необходимые модули или используя готовые. Функции, написанные на языке ѴВА, могут служить самым разным целям.
С их помощью можно выполнять вычисления настолько сложные, что простого выражения для их описания недостаточно. Возможности процедур аналогичны возможностям макросов, но гораздо шире (и это одна из причин того, почему макросы "сходят со сцены"). Процедуры связываются с определенными событиями и выполняются при их наступлении. Примером подобного события может быть щелчок мыши на определенной кнопке формы. Кроме того, в Access 97 можно выполнять процедуры и непосредственно из их модулей.
В Access при выполнении операций над объектами смысл терминов открыть и закрыть сходен с их значением в других приложениях Windows. В контексте основных объектов Access они означают следующее:
? при открытии базы данных ее составляющие становятся доступными текущему приложению, пользователь получает к ним доступ через окно базы данных; одновременно может быть открыта только одна база данных и, чтобы открыть вторую, нужно запустить еще одну копию Access; однако код ѴВА позволяет одновременно работать с таблицами нескольких баз данных и основным средством работы с данными таблиц из других баз данных являются связи с этими таблицами;
? при непосредственном открытии таблицы из окна базы данных ее содержимое выводится на экран в виде таблицы;
? после открытия запроса, таблицы, на данных которых он основан, тоже открываются, но на экран не выводятся, вместо этого выводятся в табличном режиме данные объекта Recordset, созданного во время выполнения запроса; если результатом выполнения запроса является объект Recordset динамического типа, то в полученную виртуальную таблицу можно вносить изменения, которые будут автоматически внесены в исходные таблицы;
? после открытия формы или отчета автоматически открываются связанные с ними таблицы и запросы; обычно формы и отчеты основываются именно на запросах, но сами запросы основаны на данных таблиц;
? после закрытия запроса закрываются и связанные с ним таблицы;
? после закрытия формы или отчета закрывается соответствующий запрос и связанные с ним таблицы.
С организационной точки зрения в работе с любой базой данных есть два разных режима: проектировочный и эксплуатационный (пользовательский). Создатель базы имеет право устанавливать в ней новые объекты (например, таблицы), задавать их структуру, менять свойства полей, устанавливать необходимые связи. Он работает со структурой базы и имеет полный доступ к базе. У одной базы может быть один, два или несколько разработчиков.
Пользователь базы — это лицо, которое наполняет ее информацией с помощью форм, обрабатывает данные с помощью запросов и получает результат в виде результирующих таблиц или отчетов. У одной базы могут быть миллионы пользователей и, конечно, доступ к структуре базы для них закрыт.
У Access имеются три основных режима работы.
? Начальный режим. В этот режим пользователь попадает сразу же после запуска Access. Пользователю предлагается создать базу данных (собственную или на основе шаблона) или запустить уже созданную (рис. III.86). При нажатии кнопки Отмена станет доступно меню Сервис, в котором есть группы Служебные программы и Защита. С помощью этих инструментов можно работать с базами данных, как с файлами — сжимать, конвертировать, шифровать, восстанавливать поврежденные данные. Если база данных, над которой вы хотите совершить одну из перечисленных выше операций, открыта, то ее необходимо закрыть.
Рис. III.86. Окно начального режима
? Режим конструктора. Предназначен для создания и изменения структуры таблиц, разработки форм, запросов и отчетов.
? Режим выполнения и просмотра. В этом режиме пользователь работает с данными таблиц, форм и отчетов, открытых в отдельных окнах. С помощью команды Запуск запускаются выбранные макросы. К функциям ѴВА этот режим не относится, поскольку они вызываются автоматически при выполнении запросов, форм или отчетов, а также из процедур обработки событий. А вот содержащиеся в различных модулях процедуры можно выполнять и непосредственно, и из макрокоманд. Они могут быть также выполнены после наступления определенного события в форме или отчете.
Чтобы, выбрав в окне базы данных определенный объект, перейти в режим выполнения или конструктора, нужно воспользоваться одной из командных кнопок этого окна. Для переключения режимов используются также кнопки панели инструментов и команды меню Вид.
Кроме шести вкладок для основных объектов стартовое окно базы данных содержит три командные кнопки: Открыть, Конструктор, Создать. С их помощью выбирается режим работы с базой.
? Кнопка Открыть открывает избранный объект. Если это таблица, то ее можно просмотреть, внести новые записи или изменить те, что были внесены ранее.
? Кнопка Конструктор тоже открывает избранный объект, но по-другому. Она открывает его структуру и позволяет править не содержимое, а устройство. Если это таблица, в нее можно вводить новые поля или изменять свойства существующих полей. Если это форма, в ней можно изменять или создавать элементы управления. Очевидно, что этот режим служит не для пользователей базы, а для ее разработчиков.
? Действие командной кнопки Создать соответствует ее названию. Она служит для создания новых объектов. Этот элемент управления тоже предназначен для проектировщиков базы. Таблицы, запросы, формы и отчеты можно создавать несколькими разными способами: автоматически, вручную или с помощью соответствующего мастера.