Чтобы поддерживать связи между записями в связанных таблицах, и обеспечить защиту от случайного удаления или, изменения связанных данных используется ряд правил, который обеспечивает целостность данных. Целостность данных позволяет предотвратить появление несвязанных записей. Обе взаимосвязанные таблицы должны принадлежать одной базе данных Access.
Связанные поля должны иметь один тип данных. Два исключения сделаны для поля счетчика: оно может быть связано с числовым полем, свойство которого Размер поля (FieldSize) имеет значение Длинное целое. Кроме того, поле счетчика, свойство Размер поля (FieldSize) которого имеет значение Код репликации, можно связать с числовым полем, если свойство Размер поля (FieldSize) имеет значение Код репликации.
Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.
Для поддержания целостности данных в связанных таблицах при обновлении или удалении записи в главной таблице, обеспечивается каскадное обновление или удаление всех связанных записей в подчиненной таблице или таблицах.
Как и таблицы созданные в других программах, таблицы Microsoft Access можно форматировать: изменять ширину поле, высоту строк, применять различные шрифты. Методы форматирования те же, что и в Microsoft Word или Microsoft Excel и подробно рассмотрены в главах 7 и 15. В качестве примера укажем, что для изменения ширины столбца, поставьте курсор в этот столбец и выберите в меню Формат (Format) команду Ширина столбца (Column Width) . На экране отобразится одноименное окно (рис. 23.19), в котором указывается ширина столбца. Стандартная ширина столбца в американской версии равна 15,6667, в русской версии — 15,4111. Кнопка По ширине данных (Best Fit) подгонит ширину поля по самому длинному значению поля.
Рис. 23.19 Окно, используемое для форматирования столбца по ширине
Хранящаяся в базе данных информация может быть по-разному отображена на экране. Заданный для ячейки формат чисел определяет, каким образом отображаются числа в этой ячейке. При изменении формата числа, хранимое значение для числа не изменяется. В разделе Формат (Format) на панели свойств таблицы можно выбрать следующие форматы чисел:
Основной (General Number) — отображает число с выравниванием по правому краю без разделителя разрядов. Перед отрицательным числом ставится знак минус. Отображает до 11 символов, включая десятичные точки или символ «Е» и «+». Число, содержащее более 11 цифр перед разделителем целой и дробной части, отображается в экспоненциальном формате. Текст выравнивается по левому краю,
Денежный (Currency) — используется для вывода денежных значений.
Евро (Euro) — используется для вывода денежных значений, исчисляемых в евро.
Фиксированный (Fixed) — Отображает число с двумя десятичными знаками. Например: 168,30.
С разделителями разделов (Standard) — Отображает число с разделителем групп разрядов и двумя цифрами справа от десятичного разделителя. В качестве разделителя групп разрядов обычно используется точка или запятая в зависимости от национальных стандартов, заданных с помощью панели управления Windows в разделе «Язык и стандарты». Пример использования точки, соответствующий национальным стандартам английского языка США: 12.35. Запятая может использоваться в качестве разделителя групп разрядов: 1,800.00.
Процентный (Percent) — Отображает число, умноженное на 100, с двумя десятичными знаками и знаком процента. Например, число 0,4914 отображается как 49,14%.
Экспоненциальный (Scientific) — Отображает числа в экспоненциальном представлении. Этот формат целесообразно использовать для чисел, содержащих более 11 цифр. Пример числа в экспоненциальной форме: 2.35E+1Q.
Если ввести $2.45, автоматически будет применен денежный формат. Знак евро помещается перед числом или после числа в соответствии с национальными стандартами для денежных единиц, установленным на панели управления Windows. Чтобы ввести знак евро € , убедитесь, что включен режим Num Lock клавиатуры, а затем наберите Alt+0128 на цифровой клавиатуре.
Полный формат даты отображает число как дату и/или время. Различают следующие форматы даты:
Полный формат даты (General Date) — в ячейке отображается дата с указанием числа, месяца, года и время, например, 20.07.2001 18:20:23.
Длинный формат даты (Long Date) — отображает дату с указанием числа, месяца, года. Для года отводятся четыре цифры, например, 20 июля 2001 г.
Средний формат даты (Medium Date) — отображает дату, разделяя месяц и число в соответствии с национальными стандартами, принятыми в Windows. Для года отводятся две цифры. Пример: 20-янв-01.
Краткий формат даты (Short Date) — отображает дату, используя краткий формат даты, заданный в разделе «Язык и стандарты» панели управления Windows, например: 25.01. 2001.
Для вставки текущей даты в режимах таблицы и формы нажмите клавиши Ctrl+; (Ctrl+$).
Различают следующие форматы времени:
Длинный формат времени (Long Time) — отображает время, используя длинный формат времени, заданный в разделе «Язык и стандарты» панели управления Windows с указанием часов, минут и секунд, например: 8:45:36.
Средний формат времени (Medium Time) — приводит время суток без указания секунд. При вводе времени в 12-часовом формате, после значения времени поставьте пробел и укажите AM или РМ; например, РМ. Пример: 8:45 РМ.
Краткий формат времени (Short Time) — отображает время суток в 24-часовом формате, без указания секунд. Пример: 20:45.
Чтобы выполнить импорт таблиц из файла XML, выполните следующие действия:
Откройте базу данных, в которую будут импортироваться данные.
Выберите в меню Файл (File) команды Внешние данные (Get External Data), Импорт (Import).
В диалоговом окне Импорт (Import) в раскрывающемся списке Тип файлов (Files of Туре) выберите элемент XML.
В поле Папка (Look in) выберите папку содержащую требуемый документ, выделите его и нажмите кнопку Импорт (Import).
В большинстве случаев ключевое поле одной таблицы связывают с совпадающим полем (внешним ключом) другой таблицы. Внешний ключ — это одно или несколько полей (столбцов) в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Поле внешнего ключа определяет способ связывания таблиц — содержимое поля внешнего ключа должно совпадать с содержимым ключевого поля, хотя имена полей могут при этом не совпадать. Например, для связывания сотрудников с заказами, за которые они отвечают, следует создать между таблицами «Сотрудники» и «Заказы» связь с помощью полей «КодСотрудника». Таблица «Товары» в демонстрационной базе данных «Борей» содержит поле внешнего ключа «КодПоставщика», которое ссылается на ключевое поле «КодПоставщика» в таблице «Поставщики».
Внешний ключ может иметь значение Null; если внешний ключ состоит из нескольких полей, и хотя бы одно из них имеет значение Null, то все поля должны иметь значение Null.
Для установления отношения многие-ко-многим необходимо создать третью (связующую) таблицу и добавить в нее ключевые поля из обеих таблиц. Например, в демонстрационной базе данных Борей имеются таблицы Заказы и Товары. Заказ может включать несколько товаров, а товар входить в несколько заказов. Необходимо создать связующую таблицу (таблица Заказано, которая имеет связь с отношением «один-ко-многим» с каждой из таблиц Заказы и Товары.
В Office XP был использован новый формат для баз данных, несовместимый со старыми версиями. Поэтому база данных, созданная в Office XP или Office 2003, не будет работать с базами данных, которые созданы в предыдущих версиях. Предусмотрена возможность открытия баз данных, созданных в предыдущих версиях. Если все пользователи, работающие со старой версией, перешли на новую версию, то желательно произвести преобразование форматов, чтобы обеспечить использование новых возможностей.
Рекомендуется создать резервную копию базы данных, подлежащую преобразованию, скопировав файл базы данных (файл MDB) на резервный носитель. После создания резервной копию закройте базу данных, которая будет преобразовываться. Храните копию до тех пор, пока не будет осуществлен окончательный переход к новой базе данных. Перед тем как начать преобразование в другой формат сетевой базы данных Access, расположенной на сервере или в общей папке, убедитесь, что она закрыта всеми пользователями.
В диалоговом окне База данных для преобразования (Database To Convert From) выберите базу данных и нажмите кнопку Преобразовать (Convert). В диалоговом окне Преобразовать базу данных (Convert Database Into) введите с клавиатуры новое имя (без расширения .mdb) файла базы данных или укажите другую папку файла базы данных. При использовании другой папки можно оставить старое имя или задать новое.
В ряде случаев в процессе работы с таблицей обнаруживается, что следует изменить ее структуру: нужно ввести новые поля, переименовать удалить или изменить тип существующих, изменить имя ключевого поля. Изменение структуры таблицы можно выполнять в режиме таблицы или в режиме конструктора. Рекомендуется, сделать резервную копию таблицы до изменения ее структуры с тем, чтобы избежать потери части данных.
Если вы хотите изменить последовательность полей таблицы, ввести новые или отредактировать имена, то в окне базы данных на вертикально расположенной панели Объекты (Objects) выберите значок Таблицы (Tables) , выделите имя редактируемой таблицы и перейдите в режим конструктора, выбрав в меню Вид (View) команду Конструктор (Design View) .
Чтобы добавить поле, установить курсор в поле, расположенное слева от места вставки, и выберите в меню Вставка (Insert) команду Столбец (Column) . Для удаления поля выделите ячейку в поле и выберите в меню Правка (Edit) команду Удалить столбец (Delete Column) .
Для изменения имени поля дважды щелкните область выделения этого поля и введите новый текст или установите курсор в поле и выберите в меню Формат (Format) команду Переименовать столбец (Rename column).
Для изменения связи между таблицами, выберите в меню Связи (Relationships) команду Изменить связь (Edit Relationship) . В диалоговом окне Изменение связей (Edit Relationship) нажмите кнопку Новое (Create) , чтобы создать связь (рис. 23.23).
Рис. 23.23 Изменение связей между таблицами
Чтобы изменить существующую связь, дважды щелкните ее мышью.
Чтобы связать совпадающие поля в главной и связанной таблицах, щелкните, пустую верхнюю ячейку в столбце Таблица/Запрос (Table/Query). В этой ячейке появится кнопка со стрелкой, открывающая список. Выделите в списке совпадающее поле. Затем щелкните, пустую верхнюю ячейку в столбце Связанной таблица/запрос (Related Table/Query) и выберите имя требуемого поля.
После того, как связь между таблицами установлена, их поля можно объединить в запросе, форме или отчете.
Чтобы открыть таблицу в приложении Microsoft Excel без скрытых столбцов и сохранив элементы форматирования, выберите в окне базы данных после открытия таблицы в меню Сервис (Tools) команды Связи с Office (Office Links) и Публикация в Microsoft Office Word (Publish it with Microsoft Office Word) . Команды Связи с Office (Office Links) и Слияние с MS Word (Merge it with MS Word) из этого же меню позволяет данные таблицы с документом Word и используется для печати писем и почтовых наклеек.
При пересылке таблицы по электронной почте не сохраняется форматирование таблицы, и скрытые столбцы не пересылаются. Для пересылки файла используется формат Excel BIFF.
Одно или несколько полей (столбцов), комбинация значений которых однозначно определяет каждую запись в таблице, называется первичным ключом. Ключевое поле позволяет избежать возникновения ошибок при вводе данных, так как они в этом поле не могут повторяться. В качестве ключевого поля можно использовать идентификационный номер, присваиваемый гражданам налоговой службой, серия и номер паспорта сотрудника. Ключевое поле может содержать число или последовательность символов, позволяющих идентифицировать каждую запись и избежать дублирования. Ключевое поле используется для быстрого поиска и связи данных из разных таблиц при помощи запросов, форм и отчетов.
Первичный ключ не может содержать пустых значений (Null ) и всегда должен иметь уникальный индекс. В любой таблице желательно иметь одно или несколько ключевых полей. Значение Null означает, что в поле нет никаких данных, например, потому, что они неизвестны. Значение Null нельзя приравнивать к строке, содержащей пробелы.
В специальном поле Счетчик (AutoNumber) каждой записи присваивается уникальный для этого поля номер, который автоматически увеличивается с каждой новой записью (см. ниже раздел «Создание или изменение ключевого поля»). Его можно использовать для нумерации записей по порядку.
Составной ключ (composite primary key) представляет собой комбинацию из нескольких полей. Он используется в тех случаях, когда невозможно гарантировать уникальность записи с помощью одного поля. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц в отношении «многие ко многим» (см. ниже раздел «Связи между таблицами в базе данных»).
Данные ключевого поля используются для индексирования таблицы, что ускоряет поиск и обработку информации. Если не задана сортировка таблицы, то записи располагаются по значению ключа. При включении новых записей или удалении старых записи таблицы не перемещаются, изменяется только местоположение каждого индекса. Первичный ключ используется для связывания одной таблицы с другой.
Если поставить переключатель в положение Пользователь определяет ключ самостоятельно (No, I'll set a primary key) (рис. 23.13), то в следующем окне в раскрывающемся списке Выберите поле с уникальными для каждой записи данными (What field -will hold data that is unique for each record?) укажите ключевое поле (рис. 23.14). Положение переключателя в этом окне определяет, какие данные будут использоваться в ключевом поле:
Последовательные числа, автоматически присваиваемые каждой новой записи (Consecutive number Microsoft Access assigns automatically to new record) — Access вводит возрастающие с каждой записью числа автоматически.
Числа, вводимые пользователем при добавлении новых записей (Numbers I enter when I add new records) — пользователь вводит для каждой записи только числовые значения.
Сочетание чисел и букв, вводимое пользователем при добавлении новых записей (Numbers and/or letters I enter when I add new records) — пользователь вводит для каждой записи как числовые, так и символьные значения.
Рис. 23.14 Выбор ключевого поля и используемых в нем данных
Access является одной из самых популярных настольных систем управления базами данных (СУБД), которая может работать с текстовыми файлами, с электронными таблицами и базами данных наиболее популярных форматов.
База данных хранит совокупность данных и объектов, относящихся к определенной задаче. Она помогает нам упорядочить информацию по различным признакам и позволяет быстро делать выборку с произвольным сочетанием признаков. В качестве данных может использоваться любая информация, хранящаяся на диске компьютера: сочетания символов, слова, файлы, рисунки, объекты и т.д. Методы ввода и хранения данных определяют структуру базы данных.
Access позволяет создавать реляционные базы данных, в которых данные хранятся в виде таблицы. Его можно использовать для анализа данных, для создания динамических веб-страниц, в которых автоматически будут отображаться изменения данных. С его помощью можно создавать приложения баз данных, например приложения клиент/сервер.
Access может работать в качестве:
автономной СУБД для настольных систем;
СУБД для файлового сервера;
как интерфейсный клиент для связи с серверными СУБД масштаба предприятия, например, с Microsoft SQL Server.
Access 2003 представляет собой мощную платформу для создания настольных приложений и приложений клиент/сервер уровня подразделения или целого предприятия.
Access 2003 позволяет преобразовывать базы данных Microsoft Access в формат Microsoft SQL Server, предоставляет двухстороннюю поддержку XML. Для интеграции инструментария Access с базами данных MS SQL используются быстродействующие средства доступа к базам данных на основе интерфейса OLE-DB.
База данных Microsoft Access может содержать различные объекты: таблицы, запросы, формы, отчеты, макросы, модули и ярлыки страниц доступа к данным. Данные в связанных таблицах могут содержаться в другой базе данных Access, во внешнем источнике данных, например, в базе данных dBASE или в электронной таблице Microsoft Excel, а также в источнике данных ODBC, например, Microsoft SQL Server. Программа имеет инструменты, позволяющие хранить информацию в Интернете.
После запуска Access на экране отображается стандартное окно приложения Microsoft Office 2003 (рис. 23.1), вид которого определяется установками, сделанными на вкладке Вид (рис. 26.25) диалогового окна команды Параметры (Options) в меню Сервис (Tools) . На этой вкладке можно установить флажок область задан при запуске (Startup Task Pane), что обеспечит после запуска Access показ в правой части окна области задач Приступая к работе. Ссылки в .этой области задач позволяют подключиться к веб-узлу Microsoft Office Online, получить последние сведения об использовании Access, открыть файлы, с которыми вы работали ранее или создать файл.
Рис. 23.1 Окно Access, отображаемое на экране после запуска программй
Для более подробного знакомства с возможностями различных объектов базы данных в Access можно воспользоваться учебной базой Борей (North-wind.mdb) и ее клиент-серверной версией БорейСЗ (NorthwindCS). Для работы с БорейСЗ следует установить на вашем компьютере SQL Server 2000 Desktop Engine или Microsoft SQL Server.
Рассмотрим подробнее учебную базу Борей (Northwind.mdb). После ее открытия на экране видна вертикально расположенная панель Объекты (Objects) (рис. 23.2). На ней расположены значки, используемые для создания новых объектов базы данных и открытия существующих: Таблицы (Tables), Запросы (Queries), Формы (Forms), Отчеты (Reports) и т.д. После щелчка значка какого-либо типа объекта, в правой части окна отображается список всех объектов базы данных выбранного типа. Ярлык Группы (Groups) используется для добавления ярлыка новой группы к часто используемым объектам базы данных.
Для добавления группы щелкните правой кнопкой мыши строку заголовка окна базы данных, выберите в контекстном меню команду Новая группа (New Group) и в появившемся окне введите имя новой группы.
Выделение того или иного значка на панели Объекты меняет вид панели инструментов, перечень кнопок на ней и список имеющихся объектов.
Изменить представление объектов в окне базы данных позволяют кнопки панели инструментов: Крупные значки (Large Icons), Мелкие значки (Small Icons), Список (List), Таблица (Details) или одноименные команды из меню Вид (View).
Чтобы выбрать поле, щелкните его мышью. Для перемещения по полям используются клавиши управления курсором и приведенные ниже клавиши:
Tab — перемещение к следующему полю справа;
Shift+Tab — перемещение к следующему полю слева;
Ноmе — переход к первому полю;
End — переход к последнему полю.
При перемещении по полям с клавиатуры Access автоматически выделяет данные, содержащиеся в поле. Нажатие любой клавиши после выделения поля отражается на всей записи. Чтобы удалить выделение щелкните поле мышью. Выделение поля и записи подробно рассмотрено ниже в этой главе в разделе «Ввод данных в таблицу и ее редактирование». Изменение настройки клавиатуры в Access рассмотрено ниже в этой главе в разделе «Ввод данных в таблицу и ее редактирование».
Перемещение между полями в больших таблицах облегчает раскрывающийся список Перейти к полю (Select Object) на панели инструментов Формат (Режим таблицы).
Для перемещения между записями можно использовать мышь, клавиатуру, вертикальную и горизонтальную полосы прокрутки, поле номера записи внизу окна и кнопки переходов по записям (рис. 23.4). Назначение кнопок переходов по записям:
Рис. 23.3. Фрагмент базы данных :1 — выделение всех записей, 2 — выделение поля, 3 — выделение строки
Рис. 23.4 Кнопки переходов по записям 1 — Первая запись (First Record) — выполняет переход к началу таблицы; 2 — Предыдущая запись (Previous Record) — возвращает назад на одну запись; 3 — Поле номера записи или Индикатор записи (Record Indicator) — отображает номер текущей записи; 4 — Следующая запись (Next Record) — позволяет просмотреть следующую запись; 5 — Последняя запись (Last Record) — обеспечивает переход в конец таблицы; 6 — Новая запись (New Record) — создает новую пустую запись.
Кнопки переходов по записям дублируют команды меню Правка (Edit), Перейти (Go To) .
Горизонтальная полоса прокрутки позволяет просматривать таблицы с большим количеством столбцов. Однако в ряде случаев нам надо постоянно видеть определенные столбцы, например при просмотре таблицы заказов желательно закрепить столбцы Клиент и Код заказа.
Повторите эту операцию с другим столбцом, если вы хотите постоянно видеть на экране несколько столбцов. Если потребность в постоянном отображении столбца на экране, отпадет, то выберет в меню Формат (Format) команду Освободить все столбцы (Unfreeze Columns) . Чтобы не загромождать отображение таблицы не "интересующими вас столбцами, перетащите правую границу столбца в области выделения так, чтобы она совпала с левой границей, и нажмите кнопку Сохранить (Save) на панели инструментов. Столбец будет скрыт. Для отображения на экране скрытых столбцов выберите в меню Формат (Format) команду Отобразить столбцы (Unhide Columns).
Access хранит все данные в одном файле, несмотря на то, что они могут быть распределены по разным таблицам. Таблицы с данными, их индексы, формы, отчеты хранятся в файлах с расширением .mdb (Microsoft Access database). Закрытый формат файлов с расширением .mde позволяет не включать исходный код VBA в распространяемые приложения Access. Файлы ,adp (Microsoft Access. project) обеспечивают подключение к интегрированным хранилищам данных SQL Server 2000 через соединение OLE DB, что позволяет создавать полноценные приложения, имеющие архитектуру клиент/сервер.
По умолчанию в Access используются файлы с расширением .mdb. Этот формат позволяет разработчикам сохранять файлы как *.mde или *.ade. При этом любой код Visual Basic компилируется, и исходный код исключается как из файла базы данных Access (.MDB), так и из файла проекта Access (.ADP), что обеспечивает более надежную защиту.
При редактировании записи в области ее выделения появляется изображение карандаша. Для возврата в первоначальное состояние поля, в котором находится курсор, после ввода в него символов выберите в меню Правка (Edit) команду Отменить ввод (Undo Typing) или нажмите клавишу ESC. Чтобы вернуть всю запись в первоначальное состояние, оставьте курсор в этой записи и выберите в меню Правка (Edit) команду Восстановить текущее поле или запись (Undo Current Field/Record) или перейдите в другое поле и выберите в меню Правка (Edit) команду Восстановить запись (Undo Saved Record).
Копирование и перемещение записи выполняется с использованием команд меню Правка (Edit) так же, как и в других программах (см. например, главу 4, раздел «Перемещение и копирование фрагментов документа»).
Удалить запись можно следующими способами:
1. выделите запись и выберите в Правка (Edit) команду Удалить (Delete).
2. выделите запись и нажмите клавишу Delete ;
3. нажмите кнопку Удалить запись (Delete Record) на панели инструментов;
4. поместите курсор в любое из полей записи и нажмите клавиши Ctr + — (минус).
Команда Строки (Rows) в меню Вставка (Insert) в режиме конструктора позволяет вставить новую строку над той строкой, где размещается курсор. Команду дублирует кнопка Добавить строки (Insert Rows) на панели инструментов.
Для управления базой данных используются связи между таблицами.
Если между таблицами базы данных связи не были заданы, откроется диалоговое окно Добавление таблицы (Show Table). Выберите в окне требуемые таблицы и запросы и нажмите кнопку Добавить (Add). Они отобразятся в окне Схема данных (Relationships) .
На рис. 23.21 показаны линии связи между таблицами учебной базы данных, поставляемой с Access. В каждом небольшом окне отображены списки полей одной из таблиц. Ключевые поля выделено жирным шрифтом. Таблицы, не
Рис. 23.21 Линии связи между таблицами базы данных имеющие первичных ключей, невозможно связать и в окне Схема данных они не отображаются.
Символы на линиях связи показывают тип связи. Символ бесконечности используется для обозначения «много», и если мы видим на одной линии связи символы единицы и бесконечности, то между таблицами существует связь один ко многим. Можно связывать поля с разными именами, а также запросы с таблицами или запросами (см. главу 24).
Кнопки панели инструментов Отобразить прямые связи (Show Direct Relationships) и Отобразить все (Show All Relationships) позволяют показать схему прямых связей только одной таблицы или схемы связей всех таблиц в базе данных.
Рис. 23.22 Диалоговое окно Добавление таблицы
Обмен обновляемыми данными реплик (копий баз данных) называют синхронизацией. Прямая синхронизация позволяет синхронизировать данные в репликах, непосредственно подключенных к локальной сети и доступных в общих сетевых папках. Отметим, что Access допускает синхронизацию без прямых подключений через сервер Интернета.
Для сохранения созданной таблицы выберите в меню Файл (File) команду Сохранить (Save) или нажмите клавиши Ctrl+S. На экране отобразится окно Сохранение (Save As) (рис. 23.20). В диалоговое окно Сохранение (Save As) в поле Имя таблицы (Table Name) введите ее название. После того как вы закончите создание таблицы, закройте окно конструктора таблицы.
Рис. 23.20 Окно, позволяющее задать имя таблице
Приступая к созданию базы данных, необходимо знать ее назначение, какие сведения она должна содержать. Следует определить, из каких она будет состоять таблиц (тем), какие потребуются отчеты, уточнить формы, используемые в настоящий момент для записи данных, и т.п., как они будут взаимосвязаны, какие в таблицах будут поля. Запись таблицы должна полностью описывать объект в соответствии с поставленной задачей.
Для отображения области задач Создание файла в окне Microsoft Access в меню Файл (File) выберите команду Создать (New) или нажмите одноименную кнопку на панели инструментов. С клавиатуры выбрать команду можно нажатием на клавиши Ctrl+т (Ctrl+N).
Если в разделе Создание (New) щелкнуть ссылку Новая база данных (Blank Database) , то на экране отобразится диалоговое окно Файл новой базы данных (File New Database) с предложением дать имя новой базе данных dbl, расширение .mdb и сохранить ее в папке Мои документы (My Documents). «1» добавляется по умолчанию к присвоенному имени базе данных. Измените имя базы данных или оставьте как есть и нажмите кнопку Создать (Create) .
После щелчка ссылки На моем компьютере в области задач Создание файла (New File) открывается диалоговое окно Создание (New), позволяющее выбрать шаблон создаваемой базы данных (рис. 23.5). В правой части окна вы увидите, как будет выглядеть база данных выделенного шаблона. Однако предварительный просмотр предусмотрен не для всех шаблонов.
В качестве примера, на вкладке Базы данных (Databases) выделим значок Контакты (Contact Management) и нажмем кнопку ОК . На экране отобразится окно, предлагающее сохранить создаваемую базу данных. После выполнения этой операции появится окно Создание базы данных (Database Wizard), с сообщением, что база данных «Контакты» будет содержать:
Сведения о контактах (Contact information);
Сведения о звонках (Call information).
Рис. 23.5 Шаблоны, предлагаемые для создания базы данных
Нажмите кнопку Далее (Next) . В следующем окне необходимо определить, какие таблицы будут входить в базу данных, и задать их структуру, т.е. выбрать поля (столбцы) из которых будет состоять каждая запись. Например, в списке Таблицы базы данных (Tables in database) выберите Сведения о контактах (Contact information) и установите флажки около тех подлей таблицы, которые будут использоваться (рис. 23.6).
Рис. 23.6 Выбор таблицы базы данных и ее полей
В следующем окне из списка Выберите вид оформления экрана (What style would you like for style database) (рис. 23.7). Выбранный вид отображается в левой части окна.
В следующих окнах Выберите вид оформления отчета на печати и Задайте название базы данных (What would you like the title of the database to be) (рис. 23.8). Это название будет приведено во всех формах и отчетах. После установки флажка Добавить рисунок во все отчеты (Yes, I I'd like to include a picture) вы сможете выбрать растровый (bmp, dip) или векторный (wmf, emf) рисунок, который будет помещаться во все отчеты. Для отображения на экране окна Выбор рисунка (Insert Picture) нажмите кнопку Рисунок (Picture).
Рис. 23.7 Выбор вида оформления экрана
Рис. 23.8 Ввод названия базы данных
В последнем окне можно установить флажок Да, запустить базу данных (Yes, start the database) и нажать кнопку Готово (Finish) . Будет создан новый файл базы данных, а на экране отобразится Главная кнопочная форма (Main Switchboard) нового приложения (рис. 23.9). Внизу окна Microsoft Access отображено минимизированное окно созданной базы данных. Мастер поместил в новую базу данных различные типы объектов: таблицы, формы, отчеты и т.п. (Более подробно формы рассмотрены в главе 25.)
Назначение кнопок показанной на рисунке главной кнопочной формы:
Ввод/просмотр формы «Контакты» (Enter/View Contacts) — открывает форму Контакты;
Ввод/просмотр других сведений (Enter/View Other Information) — открывает кнопочную форму для форм (Reports Switchboard), которая имеет две кнопки: одна открывает форму для добавления записей, другая — возвращает в окно главной кнопочной формы;
Просмотр отчетов (Preview Reports) — открывает форму, позволяющую просмотреть и распечатать отчеты;
Изменение элементов кнопочной формы (Change Switchboard Items) — позволяет добавить в форму новые страницы или кнопки и изменить их;
Рис. 23.9 Главная кнопочная форма новой базы данных
Выход (Exit this database) закрывает базу данных, с которой вы работали, оставляя на экране окно Microsoft Access.
В качестве примера на рис. 23.10 показана форма к базе данных, отображенная на экране после нажатия кнопки Ввод/просмотр формы контакты (Enter/View Contacts) . Работа с формами рассмотрена в главе 25.
Рис. 23.10 Форма для новой базы данных Контакты, созданная с помощью главной кнопочной формы
Для создания в таблице ключевого поля типа Счетчик в режиме конструктора выполните следующие действия:
выберите в столбце Тип данных (Data Type) значение Счетчик (AutoNum-ber);
на вкладке Общие в строке Новые значения (New Value) задайте Последовательные (Increment);
выберите команду Ключевое поле (Primary Key) в контекстном меню, поcле щелчка правой кнопкой мыши поля или нажмите кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц .
Другие способы создания ключевого поля в готовой таблице в режиме конструктора:
установить в поле курсор и выбрать в меню Правка (Edit) команду Ключевое поле (Primary Key);
выделить одно или несколько полей, удерживая нажатой клавишу Ctrl, и нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц. Слева от каждого ключевого поля появится изображение ключа.
Если вы забудете создать ключевое поле, то Access напомнит об этом окном с соответствующим предупреждением (рис. 23.18).
Рис. 23.18 Окно, предупреждающее, что в создаваемой таблице ключевые поля не заданы
Индексы используются для ускорения поиска и сортировки данных. При поиске записи СУБД ищет сначала нужное значение в индексе, а затем отбирает записи по ссылкам. Различают простые и составные индексы. Простой индекс создаются по одному столбцу, составные — по нескольким. Например, простой индекс можно построить по столбцу Фамилия, составной — по столбцам Фамилия, Имя, Отчество.
Недостаток использования индексов — после добавления или удаления записей следует обновить индекс. При большом количестве индексов это может привести к замедлению работы.
Индексировать можно любы? поля, кроме полей типа Мемо, Гиперссылка и Поле объекта OLE .
Процесс создания копий баз данных (реплик), которые могут обмениваться обновляемыми данными или реплицированными формами, отчетами или другими объектами, называется репликацией базы данных. Каждая копия базы данных называется репликой, и каждая реплика содержит общий набор таблиц, запросов, отчетов, форм, макросов и модулей. Каждая реплика может также содержать локальные объекты, которые существуют только в этой реплике. В репликах можно обеспечить синхронизацию изменений, внесенных в данные одной из реплик, что облегчает совместное использование данных и распространение обновленных версий приложений.
Для преобразования набора реплик в новый формат создайте копию текущей основной реплики и поместите копию на другой компьютер или полностью изолируйте ее от остальных элементов набора реплик. Выполните следующую последовательность действий:
откройте базу данных перед созданием реплики;
в меню Сервис (Tools) выберите команду Репликация (Replication) и подкоманду Создать реплику (Create Replica);
нажмите кнопку Да (Yes) в ответ на вопрос о закрытии базы данных;
в окне запроса о создании резервной копии базы данных нажмите кнопку Да (Yes) . (Это диалоговое окно выводится только при преобразовании базы данных в основную реплику), резервная копия будет иметь то же имя и расширение .bak;
в диалоговом окне Размещение новой реплики (Location of New Replica) выберите место для размещения новой реплики, нажмите кнопку Приоритет (Priority), введите приоритет реплики и нажмите ОК ;
в диалоговом окне Размещение новой реплики (Location of New Replica ) установите флажок Запретить удаление (Prevent deletes) , чтобы пользователи не могли удалять записи из реплики.
При реплицировании базы данных все таблицы, запросы, формы, отчеты, макросы и модули по умолчанию реплицируются вместе с данными.
При создании таблицы следует руководствоваться следующими принципами:
таблица должна содержать все необходимые сведения;
сведения в таблице или между таблицами не должны дублироваться;
каждое поле в таблице содержит конкретный факт по теме таблицы;
данные следует разбить на наименьшие логические единицы, например, имя, фамилия;
Таблицу можно создать несколькими способами:
1. С помощью мастера таблиц (Table Wizard) .
2. В режиме конструктора таблицы (Table Design).
3. За счет импорта данных из внешних источников.
4. За счет связи с внешней таблицей.
Мастера в Access являются удобным и эффективным средством построения базы данных, таблиц, запросов, форм и т.д. Окно мастера таблицы можно отобразить на экране несколькими способами:
1. В окне базы данных на панели Объекты (Objects) выбрать значок Таблицы (Tables) и дважды щелкнуть значок Создание таблицы с помощью мастера (Create Table By Using Wizard) (см. рис. 23.2).
2. В окне базы данных на панели инструментов нажать кнопку Создать (New) (см. рис. 23.2) и в диалоговом окне Новая таблица (New Table) выбрать Мастер таблиц (Table Wizard) (рис. 23.11).
Рис. 23.11 Выбор мастера таблиц в окне Новая таблица
После выбора в окне базы данных на панели Объекты (Objects) значка Таблицы (Tables) и двойного щелчка значка Создание таблицы с помощью мастера (Create Table By Using Wizard) (см. рис. 23.2), на экране отобразится окно мастера таблиц. В этом окне положением переключателя выберите область использования создаваемой таблицы Деловое применение (Business) или Личное применение (Personal) (рис. 23.12). Очевидно, что от области применения базы данных зависит структура таблицы, используемые в ней поля.
Рис. 23.12 Выбор полей создаваемой таблицы
В списке Образцы таблиц (Sample Tables) выделите, какого типа таблица будет создана, в списке Образцы полей (Sample Fields) выберите, какие поля будет иметь таблица.
Кнопки мастера таблиц, расположенные между списками имеют следующее назначение:
В окне базы данных в режиме конструктора таблиц вместо панели инструментов базы данных отображена панель инструментов конструктора таблиц.
Для перемещения между полями используйте клавиши управления курсором: стрелка-вправо, стрелка-влево и т.д. или клавиши Tab, Shift+Tab.
Современные базы данных обычно содержат большое количество взаимосвязанных таблиц, что позволяет избежать повторов. Например, крупные фирмы могут хранить сведения о магазинах в одной таблице, номенклатуру товаров, полученных этими магазинами в текущем месяце в другой таблице, а сведения об оптовых покупателях в третьей таблице. Access позволяет работать одновременно с несколькими таблицами, каждая из которых должна содержать записи, посвященные определенной теме. Связь между ними устанавливается по общим для нескольких таблиц полям, например, номера магазинов, через которые осуществляется реализация товара. Желательно, чтобы в одной из таблиц общее поле было ключевым. Если таблицы взаимосвязаны, то изменения, выполненные в записи одной таблицы, могут влиять на записи в другой таблице.
Для сохранения полноты и целостности данных Access накладывает определенные ограничения на ввод и редактирование данных, например, невозможно удалить запись из одной таблицы, если существуют связанные с ней записи в других таблицах.
Свойства поля определяют параметры поля: размер, тип данных и т.д. Свойства полей таблицы задаются в режиме конструктора таблиц. В верхней части окна (рис. 23.15) приводится список полей, в котором обязательно указывается Имя поля (Field Name) и Тип данных (Data Type) . Информация, введенная в поле Описание (Description) , будет отображаться в строке состояния таблицы при выборе поля. Описание не должно превышать 255 символов. Это свойство можно не задавать.
Рис. 23.15 Выбор типа данных для поля
Тип данных (Data Type) определяет, какую информацию можно ввести в поле. В раскрывающемся списке ячейки предусмотрены следующие типы данных:
Текстовый (Text) — используется для полей, содержащих комбинации символов и цифр (не более 255 символов). По умолчанию полям присваивается этот тип данных, так как он получил наиболее широкое распространение. ,
Поле Memo (Memo) — предназначено для ввода букв, цифр и знаков препинания (длинные тексты и комментарии — не более 65535 символов). Поле этого типа не может быть ключевым.
Числовой (Number) — содержит только цифровую информацию (за исключением денежных величин), которую в дальнейшем можно использовать для вычислений.
Денежный (Currency) — предназначен для ввода денежных величин. Стандартный шаблон для полей этого типа предусматривает использование двух десятичных знаков, т.е. учет копеек. Максимальное число отображаемых десятичных знаков не превышает четырех. Он используется для предотвращения ошибок при округлении.
Дата/время (Date/Time) — содержит информацию о дате и времени. Дата и время хранятся в виде числа, целая часть которого представляет дату, дробная — время. Дата и время могут выводиться в различных форматах.
Счетчик (AutoNumber) — имеет формат длинного целого (Long Integer) . При добавлении новой записи значение этому полю присваиваются автоматически. Это поле можно использовать в качестве ключевого.
Логический (Yes/No) — применяется для полей содержащих значения Да (Yes) или Нет (No).
Например, в таком поле можно указать имеет ли данный сотрудник детей или нет. В логические поля можно записать число О, которое интерпретируется как Ложь (False) или 1 — подразумевается Истина (True) . Логическое поле не может быть ключевым, но по нему можно индексировать таблицу.
Поле объекта OLE (OLE Object) — содержит объекты из других программ (растровые и векторные рисунки, аудио и видео файлы, электронные таблицы и т.д.). Это поле не может быть ключевым или индексным.
Гиперссылка (Hyperlink) — предназначено для хранения адреса веб-страницы, расположенной в Интернете, интранете, локальной сети или на автономном компьютере. После щелчка мышью на этом поле автоматически запускается обозреватель. Гипрессылки позволяют выполнять переходы между объектами Microsoft Access без помощи программирования. Для создания ссылки, открывающей объект Access, введите имя объекта в поле гиперссылки.
Мастер подстановок (Lookup Wizard) — загружает мастера подстановок и выводит комбинированное окно, позволяющее выбрать из списка требуемое значение, например, можно выбрать поле из другой базы данных.
Панель свойств содержит ряд дополнительных свойств поля, Приведем некоторые из них:
Размер поля (Field Size) — для текстового поля определяет максимальное число символов, которое может быть введено в (не более 255). Для числовых полей выбирается длинное целое (Long Integer), целое (Integer ) и т.п. Чем шире поле, тем труднее пользоваться таблицей, так как она может не помещаться на экране. Однако поле, имеющее слишком маленький размер, может не вместить требуемую информацию. У некоторых типов полей: Дата/время (Date/Time) , Денежный (Currency), Мемо (MEMO), Поле объекта OLE (OLE Object) этого свойство отсутствует.
Формат поля (Format) — позволяет изменить отображение данных на экране или при печати, например, длинный формат даты (Long Date) отображает: Вторник, 18 декабря 2001 г., короткий (Short Date) — 18.12.2001. Формат выбирается из раскрывающегося списка.
По умолчанию он определяется региональными настройками, сделанными в окне Панель управления операционной системы. У полей типа Поле объекта OLE (OLE Object) это свойство отсутствует.
Новые значения (New Value) — определяет способ вычисления нового значения для добавляемой в таблицу записи. Это свойство есть только у полей Счетчик (AutoNumber) . Из раскрывающегося списка выбирается значение или Случайные (Random). При выборе значения Последовательные (Increment) новое значение поля увеличивается на 1.
Маска ввода (Input Mask) — определяет, как будут вводиться и редактироваться данные. С ее помощью можно задать, какой тип символов (буква или цифра) будет вводиться в поле. Маску ввода можно создать с помощью мастера, запускаемого нажатием кнопки с тремя точками «», которая отображается в конце строки после установки в ней указателя мыши. Мастер предлагает список масок, используемых при вводе времени, номера телефона, индексов и т.п.
Число десятинных знаков (Decimal'Places) — используется для числовых полей. Можно выбрать из раскрывающегося списка значение Авто или определенное значение. Число десятичных знаков можно ввести вручную.
Подпись (Caption) — позволяет в режиме таблицы выводить в качестве заголовка надпись, приведенную в данной строке. Подпись может содержать любые символы
Значение по умолчанию (Default Value) — предусматривает автоматический ввод определенного значения, например, если почти все представленные в таблице компьютеры имеют процессор Pentium, то в столбце Процессор можно предусмотреть ввод по умолчанию этого названия.
Условие на значение (Validation Rule) — предусматривает ввод условия, которое будет проверяться каждый раз после изменения значения поля.
Сообщение об ошибке (Validation Text ) — появляется в строке состояния при вводе в таблицу значения не соответствующего условию проверки.
Обязательное поле (Required) — после ввода значения Да (Yes) для этого свойства, все записи таблицы в указанном поле должны быть заполненными.
Если указанное поле не будет заполнено, Access отобразит на экране соответствующее предупреждение.
Пустые строки (Allow Zero Length) — поле должно содержать хотя бы один символ, если для него установлено значение Да (Yes) . Это свойство предусмотрено только для тестовых, MEMO полей и гиперссылок.
Индексированное поле (Indexed) — определяет индекс, создаваемый по одному полю, что ускоряет поиск значений в этом поле. Если в этом поле часто будет выполняться поиск значений, то в раскрывающемся списке значений свойства выбирается Да (Совпадения допускаются) (Yes (Duplicates OK)). Если две записи не могут иметь одинаковое значение для данного поля, то устанавливается значение Да (Совпадения не допускаются) (Yes (No Duplicates)) . Значение Нет (No) удаляет значение индекса, кроме единственного ключевого поля. Нельзя индексировать таблицы по следующим полям: Мемо (MEMO), Поле объекта OLE (OLE Object) и Гиперссылка (Hyperlink).
На вкладке Подстановка (Lookup) свойства поля может выбираться Тип элемента управления (Display Control) , который влияет на отображение данных при вводе. Например, если у вас тип данных: Текстовый (Text) , то вы можете отобразить его как Поле (Text Box), Список (List Box) или Поле со списком (Combo Box) (рис. 23.16).
Свойства таблицы позволяют более полно описать таблицу, но их можно не вводить. Чтобы задать свойства таблицы, отобразите ее в режиме конструктора и нажмите на панели инструментов кнопку Свойства (Properties) или нажмите клавиши Alt+Enter.
Краткое описание свойств таблицы (рис. 23.17) дано ниже:
Описание (Description) — используется для пояснений, касающихся назначения таблицы;
Условие на значение (Validation Rule) — позволяет задать условие для проверки правильности вводимых в таблицу данных. Условие относится к таблице в целом, а не к конкретному полю;
Сообщение об ошибке (Validation Text) — служит для ввода сообщения, которое будет отображаться на экране при вводе данных, не соответствующих условию на значение;
Фильтр (Filter) — содержит фильтры, налагаемые на таблицу после ее открытия. Фильтры могут ограничивать количество записей согласно критериям, заданным пользователем;
Порядок сортировки (Order by) — задает порядок сортировки таблицы после ее открытия;
Имя подтаблицы (Subdatasheets Name) — определяет, надо ли отображать в подтаблицах данные в связанных записях и как их отображать. По умолчанию установлено значение Авто (Auto), позволяющее автоматически добавлять вложенные таблицы для связанных записей. Значение Нет (None) отключает подтаблицы;
Рис. 23.17 Свойства таблицы
Подчиненные поля (Link Child Fields) — определяет имя связанного поля подчиненной таблицы, если задано свойство Имя подтаблицы. Можно не указывать 'значение этого свойства, если установлено значение Авто для свойства Имя подтаблицы;
Основные поля (Master Fields) — определяет для таблицы, стоящей по иерархии выше рассматриваемой, имя связующего поля, если задано значение Имя подтаблицы;
Высота подтаблицы (Subdatasheet Height) — ограничивает максимальную высоту вложенной таблицы, если задано значение для свойства Имя подтаблицы;
Развернутая подтаблица (Subdatasheet Expanded) — задает начальное отображение вложенной таблицы, если задано значение для свойства Имя подтаблицы. После установки значения Да (Yes) таблица будет открываться со всеми открытыми вложенными таблицами;
Ориентация (Orientation) — может быть Слева направо (Left-to-Right) или Справа налево (Right-to-left) .
При внесении изменений в базу данных, ее файл становится фрагментированным, при удалении записей из таблиц размер файла не уменьшается, Поэтому после внесения значительных изменений в базу данных рекомендуется выбрать в меню Сервис (Tools) команду Служебные программы (Database Utilities), Сжать и восстановить базу данных (Compact and Repair Database ). После сжатия база данных будет записана на диск под тем же именем.
Если вы хотите ввести новую таблицу в окно Схема данных (Relationships) (см. рис. 23.21) и установить связь между таблицами, то выполните следующие действия:
закройте все таблицы и формы;
в окне базы данных выберите команду Схема данных (Relationships) в меню Сервис (Tools) или нажмите одноименную кнопку на панели инструментов;
если в окне Схема данных (Relationships) будет представлена какая-либо информация, то нажмите сначала кнопку Очистить макет (Clear Layout), а затем кнопку Да (Yes) , чтобы продолжить выполнение намеченной операции;
в меню Связи (Relationships) выберите команду Добавить таблицу (Show Table) или нажмите одноименную кнопку на панели инструментов;
в диалоговом окне Добавление таблицы (Show Table) на вкладке Таблицы (Tables) выделите требуемую таблицу и нажмите кнопку Добавить (Add) или дважды щелкните имя этой таблицы (рис. 23.22);
в окне Схема данных (Relationships) отобразится список полей выбранной таблицы с выделенным полем ключа;
в диалоговом окне Добавление таблицы (Show Table) выделите таблицу, с которой устанавливается взаимосвязь и нажмите кнопку Добавить (Add);
в окне Схема данных (Relationships) перетащите ключевое поле из списка главной таблицы в список связанной таблицы.
Для задания связи можно перетащить имя поля из списка полей таблицы и поместить его в другой список. При задании связи «один ко многим» первичный ключ первой таблицы перетаскивают в такое же поле во второй таблице.
Реляционная база данных может содержать большое количество взаимосвязанных таблиц. Связи устанавливается между двумя общими полями (столбцами) двух таблиц. Связываемые поля могут иметь разные имена, но должны иметь одинаковый тип данных за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства Размер поля (FieldSize) обоих полей совпадают. Например, если свойство обоих полей имеет значение Длинное целое. Даже в том случае, когда связываются поля типа «Числовой», их свойства Размер поля (FieldSize) должны иметь одинаковые значения.
Задав связи между таблицами, можно создать запросы, формы и отчеты для отображения сведений, представленных в нескольких таблицах. Между двумя таблицами могут существовать следующие связи:
один к одному — при таком типе связи одной записи в первой таблице соответствует только одна запись в другой таблице. В этом случае следует проверить возможность размещения всех записей в одной таблице. Однако в ряде случаев можно использовать несколько более простых таблиц. Соответствие записей устанавливается по полю, которое является первичным ключом в первой таблице, и полю, называемым внешним ключом другой таблицы;
один ко многим — в этом случае запись одной таблицы может иметь несколько согласованных с ней записей в другой таблице. При этом каждая запись во второй таблице согласуется только с одной записью в первой таблице. Например, каждый покупатель может купить несколько товаров, но каждый проданный товар имеет только одного покупателя. Поле, содержащее первичный ключ новой таблицы, связывается с внешним ключом старой. Значения в поле с внешним ключом могут повторяться;
многие к одному — любой записи таблицы, связь с которой мы рассматриваем, могут соответствовать несколько записей новой таблицы, но не наоборот. Фактически это отношение один ко многим, рассматриваемое, в обратном порядке. В этом случае ключевое поле новой таблицы является внешним ключом;
Для отображения на экране таблицы в окне базы данных выделите имя таблицы в списке и выберите команду Открыть (Open) в меню Файл (File) или нажмите кнопку Открыть (Open) на панели инструментов.
Щелкните ячейку, в которую необходимо ввести данные. Введите данные и нажмите клавиши Enter или Tab. Для перехода к пустой записи нажмите клавиши Ctrl + (символ «плюс») или нажмите кнопку перехода по записям Новая запись (New Record) (см. рис. 23.4)
Изменение значений полей, добавление или удаление данных и поиск данных выполняется в режиме таблицы. Ввод новых данных в выделенное поле автоматически заменяет старые. Количество вводимых символов зависит от размера поля, а не от ширины столбца. Текст не может быть разорван внутри ячейки. В одной ячейке нельзя отобразить несколько строк текста.
Чтобы ввести одни и те же данные в несколько ячеек, выделите ячейки, наберите данные, а затем нажмите Ctrl+Enter. Для удаления данных в выделенном поле нажмите клавишу Delete .
Например, чтобы ввести шифр компонента 06-02-11 в качестве текста, а не значения времени, введите 06-02-П. Чтобы изменить формат ячеек, выберите их и на панели инструментов листа щелкните кнопку Панель свойств.
Для выполнения некоторых операций редактирования записи: копирования, перемещения, удаления, ее необходимо выделить. В режиме таблицы запись можно выделить следующими способами:
1. щелкнуть область выделения строки (см. рис.23.3);
2. переместить курсор в запись и выбрать в меню Правка (Edit) команду Выделить запись (Select Record) ;
3. переместить курсор в запись и нажать клавиши Shift+Пробел. Если надо выделить несколько записей с клавиатуры нажмите клавиши Shift+Пробел, а затем Shift+стрелка-вверх или Shift+стрелка-вниз.
Для выделения всех записей выберите в меню Правка (Edit) команду Выделить все записи (Select All Records) или нажмите клавиши Ctrl+A. Для выделения поля поставьте в него курсор и нажмите клавишу F2. Повторное нажатие клавиши F2 отменит выделение поля.
Для выделения поля в режиме таблицы щелкните поле в области выделения поля (ем. рис. 23.3). Для выделения поля в режиме конструктора щелкните область выделения поля таблицы. Для выделения нескольких полей в режиме конструктора щелкните область выделения для каждого поля таблицы, удерживая нажатой клавишу Ctrl.
Для завершения работы с приложением выберите команду Выход (Exit) в меню Файл (File) . Другие варианты запуска программы и завершения работы с ней рассмотрены в главе 1 в разделах «Различные способы запуска приложений Microsoft Office» и «Закрытие документа и выход из программы Microsoft Office».
В этой главе даны начальные сведения о системе управления базами данных (СУБД) Microsoft Access. Вы познакомитесь со следующими вопросами:
назначение Access;
создание базы данных и таблицы;
ввод данных в таблицу, ее редактирование и форматирование;
связи между таблицами в базе данных.
В некоторых случаях нам надо найти в базе данных только те записи, которые содержат выделенное значение и служит образцом для отбора. Например,, существует большая таблица с данными об автомобилях. Выделим в таблице поле 2109 в столбце Машины ВАЗ. При фильтрации по выделенному в таблице фрагменту останутся только записи о ВАЗ 2109.
С помощью фильтра можно также отобрать те записи, которые в данном поле не содержат выделенное значение. Для создания фильтра выделите значение, щелкните его правой кнопкой мыши и выберите команду Исключить выделенное (Filter Excluding Selection) . Применительно к рассмотренному выше примеру после проведения фильтрации с исключением выделенного в столбце Машины ВАЗ отобразятся записи обо всех моделях ВАЗ, за исключением ВАЗ 2109.
Команда Фильтр для (Filter for) позволяет ввести значение или выражение, которое будет служить критерием фильтрации при поиске. Для выполнения процесса фильтрации выберите в меню Записи (Records) команду Применить фильтр (Apply Filter, Sort) или нажмите кнопку Применить фильтр (Apply Filter) на панели инструментов.
Использование запросов для работы с данными
Типы запросов
Создание запроса
Создание таблицы с помощью запроса
Выбор условий отбора записей в запросе
Запрос на обновление записей
Создание многотабличных запросов
Поиск и замена данных
Использование индексов
Выбор условий сортировки
Применение фильтра
Для повышения скорости сортировки и поиска записей можно проиндексировать отдельное поле или комбинацию полей. Индекс — это средство, ускоряющее поиск и сортировку в таблицы за счет использования ключевых значений, которое позволяет обеспечить уникальность строк таблицы. Первичный ключ таблицы индексируется автоматически. Не допускается создание индексов для полей с некоторыми типами данных.
Первичный ключ запрещает ввод в поле повторяющихся значений, Однако запрет на ввод повторяющихся значений может потребоваться и для других полей. Например, чтобы не повторялись номера пропусков сотрудников. Для нескольких полей, ввод в которые повторяющихся значений должен быть запрещен, можно использовать составной индекс. При создании индексов можно использовать поля разных типов.
Для одной таблицы Access позволяет создать до 32 индексов, из которых пять могут быть составными. Составной индекс может включать до 10 полей. С увеличением количества индексов уменьшается скорость добавления новых записей, так как каждая новая запись требует добавления к ней индексов.
Вычисляемое поле отображает данные, полученные в запросе по результатам расчета выражения. Значение поля пересчитывается при каждом изменении выражения.
Например, если каждый заказ стоит 5 рублей и вы хотите вычислить стоимость всех заказов, сделанных каждым покупателем, то введите в ячейку Поле выражение: Стоимость:[Количество заказов]*5.
В этой главе рассмотрены различные методы отображения информации, представленной в базе данных, методы исключения из просмотра записей, не интересующих пользователя при решении поставленной задачи. Вы ознакомитесь со следующими материалами:
типы запросов и их создание;
создание таблицы с помощью запроса;
поиск и замена записи.
применение сортировки и фильтра.
Если вы не уверены в написании какого-либо слова, то можете использовать оператор LIKE и подстановочный знак. Напомним, что знак вопроса заменяет один символ, а звездочка * — группу символов. Например, выражение: LIKE П?Л выполняет поиск слов, начинающихся с буквы П. Выражение: LIKE выполняет поиск слов, пел, пал, пол и т.п.
Под выражением подразумевается любая комбинация операторов, констант, значений текстовых констант, функций, имен полей (столбцов), элементов управления или свойств, результатом которой является конкретное значение.
Оператор — это символ или слово, например, = или Оr, указывающие выполнение операции над одним или несколькими элементами. Операторы позволяют выполнять операции над элементами формулы. Access позволяет использовать различные типы операторов для вычислений на листе:
арифметические операторы — служат для выполнения арифметических операций над числами (таблица);
операторы сравнения — используются для сравнения двух значений. Результатом сравнения может являться логическое значение: либо ИСТИНА, либо ЛОЖЬ;
текстовый оператор конкатенации Амперсанд (&) — используется для объединения нескольких текстовых строк в одну строку;
операторы ссылки — применяются для описания ссылок на диапазоны ячеек.
Запрос записей в определенном диапазоне значений может выполняться с использованием следующих операторов сравнения: = — равно; > — больше, чем; < — меньше, чем;
<> — не равно;
>= — больше или равно;
<= — меньше или равно.
Допустим, вас интересуют сотрудники, зарплата которых превышает 300 рублей. В строку Условия отбора (Criteria) введите: >300.
Как правило, операторы сравнения используются в числовых полях или полях дат, но они могут применяться и в текстовых полях. Например, если ввести в текстовое поле условие отбора < 'П', то будут выбраны значения поля, начинающиеся после буквы «П».
Таблицу, полученную по результатам запроса, можно напечатать, выбрав в меню Файл (File) команду Печать (Print). Рекомендуется сначала просмотреть отчет в окне Предварительный просмотр (Print Preview).
Поиск информации в базе данных путем просмотра большой таблицы, содержащей тысячи записей, займет много времени. Access предлагает несколько способов поиска или замены нужных данных при выполнении поиска конкретного значения, одной записи или группы записей:
прокрутить таблицу или форму либо ввести номер нужной записи в поле номера записи (см. рис. 24.3);
провести автоматизированный поиск конкретных записей или определенных значений в полях с помощью диалогового окна Найти и заменить (Find and Replace), которое отображается на экране после выбора команды Найти (Find) в меню Правка (Edit);
временно изолировать с помощью фильтра и просмотреть определенный набор записей в таблице или открытой форме;
просмотреть определенный набор записей из одной или нескольких таблиц базы данных, удовлетворяющий заданным с помощью запроса условиям. Запрос позволяет работать с набором записей независимо от конкретной формы или таблицы.
Выберите объект в режиме таблицы или форму для поиска по всем полям во всех записях. Для ускорения поиска поставьте курсор в поле, по которому будет проводиться поиск, или в раскрывающемся списке Поиск в (Look in) выберите поле для поиска. Слово или фразу введите в поле Образец (Find What). Нажмите кнопку Найти далее (Find Next).
Поиск только в текущем поле, особенно в индексированном поле, обычно выполняется быстрее. Первичный ключ таблицы индексируется автоматически. Создание индексов для полей с некоторыми типами данных не допускается. Быстрее всего операция поиска выполняется по полному значению поля или по первым символам в одном индексированном поле. Если приходится часто выполнять поиск в одном и том же неиндексированном поле, для этого поля полезно создать индекс.
Раскрывающийся список Совпадение (Match) содержит три позиции, определяющих тип совпадений:
Рис. 24.14 Поиск информации в базе данных
С любой частью поля (Part of Field) — производит поиск информации, часть которой совпадает с представленной в таблице, например, по образцу "ань" будут найдены города Казань, Рязань и т.п.
Поля целиком (Whole Field) — искомая информация должна полностью совпадать с той, которая приведена в поле.
С начала поля (Start of Field) — искомая информация должна быть представлена в начале поля, например, по образцу «нев» будет найдена Нева, а не Кишинев.
Раскрывающийся список Просмотр (Search) — позволяет выбрать направление поиска: Вверх (к первой записи), Вниз (к последней записи) или Все (во всей таблице).
Флажок С учетом регистра (Match Case) — задает поиск с учетом регистра символов при сравнении с образцом, заданным в поле Образец.
Флажок С учетом формата полей (Search Fields As Formatted) — устанавливают для поиска данных в указанном формате отображения (например, дата, сохраненная в формате 05.01.92, может выводиться как 05-янв-92). Такой поиск является обычно самым медленным. Снимите флажок для поиска данных по их значению.
Если требуется заменить конкретные значения, обнаруженные при поиске, откройте вкладку Заменить (Replace). Более подробно операции поиска и замены описаны в главе 4.
Для отображения окна построителя выражений (рис. 24.12) выполните следующие действия:
перейдите в режим конструктора запроса;
в строке Условие отбора (Criteria) щелкните правой кнопкой мыши столбец, для которого необходимо задать критерии отбора, и выберите в контекстном меню команду Построить (Build) или нажмите одноименную кнопку на панели инструментов.
Рис. 24.12 Построитель выражений
В верхней части диалогового окна построителя выражений расположено поле, отображающее выражение по мере его создания. Access часто помещает в это поле прототипы, заключенные в двойные угловые кавычки, вместо которых пользователь должен подставить нужные элементы. Следует либо ввести соответствующее значение, либо выделить прототип, и заменить его на элемент из правого списка.
В средней части окна построителя находится раздел, предназначенный для создания элементов выражения. В нем расположены кнопки с часто используемыми операторами. При нажатии на одну из этих кнопок построитель вставит соответствующий оператор в текущую позицию поля выражения. Например, вы можете нажать кнопку Like , чтобы не вводить это слово с клавиатуры.
В нижней части окна построителя находятся три поля. В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, , встроенные и определенные пользователем функции, константы, операторы и общие выражения. В среднем поле задаются определенные элементы или типы элементов для папки, заданной в левом поле. В правом поле выводится список значений (если они существуют) для элементов, Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access, в правом поле будет выведен список всех встроенных функций, заданных левым и средним полями.
Чтобы вывести полный список операторов, выберите папку Операторы в нижнем левом поле и нужный тип в среднем поле. В правом поле будут выведены все операторы выбранного типа. Возможен непосредственный ввод части выражения в верхнее поле.
Для возвращения в бланк запроса нажмите кнопку ОК, Построенное выражение будет вставлено в то поле, где расположен курсор. Имена полей при вводе в бланк запроса следует заключить в квадратные скобки
Фильтром называется набор условий, применяемых для отбора или сортировки данных. Применение фильтра позволяет ограничить количество просматриваемых записей и отобрать только те записи, которые удовлетворяют заданным условиям. Фильтры не сохраняются после закрытия таблицы или формы, поэтому их приходится создавать заново после открытия таблицы или формы.
Для проведения отбора по определенным условиям укажите таблицу или форму и поле, по которому будет производиться фильтрация записей. Например, вас могут интересовать сотрудники фирмы, проработавшие в ней 5 лет. В Access поддерживаются различные способы отбора записей с помощью фильтров. Ниже рассмотрены два способа фильтрации: фильтр по выделенному фрагменту и расширенный фильтр.
Например, вы хотите узнать объем продаж дорогих (дороже 2500 руб.) и дешевых (меньше 500 руб.) заказов. Введите в ячейку Условия отбора (Criteria) : >2500, в ячейку или (or) <500. Условия, заданные в ячейке или, будут восприниматься как дополнительные.
На экране отобразится окно, рассмотренное в предыдущем разделе «Применение сортировки». В ячейку Условия отбора (Criteria) введите критерии, по которым будет производиться фильтрация. В качестве критерия можно использовать различные текстовые значения, например, Or, если вы хотите отобразить заказы стоимостью больше 1500 рублей (рис. 24.18), операторы равно «=», больше «>», меньше«<», не равно «0», даты, например, вы можете выбрать заказы, полученные на последний день каждого месяца.
Для поиска записей, имеющих в конкретном поле пустые или непустые значения, введите в это поле выражение Is Null или Is Not Null. (Эти значения можно выбрать из списка в полях, имеющих тип «поле MEMO», «поле объекта OLE» или «Гиперссылка», и в вычисляемых полях в запросах.)
Рис. 24.18 Окно, позволяющее выполнить фильтрацию с определенным условием отбора
Для выполнения фильтрации выберите команду Применить фильтр (Apply Filter)) в меню Записи (Records). Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохраненный фильтр. При сохранении запроса фильтр сохраняется автоматически, но условие фильтра не добавляется к содержимому бланка запроса. При повторном открытии запроса можно снова применить сохраненный фильтр. После окончания работы с фильтром для отображения всей таблицы выберите в меню Записи (Records) команду Удалить фильтр (Remove Filter, Sort) или выключить на панели инструментов кнопку Применить фильтр (Apply Filter) .
Режим конструктора позволяет не только создать новый запрос, но и редактировать существующий. В этом режиме можно добавлять поля, задавать порядок сортировки и условия отбора. Чтобы открыть запрос в режиме конструктора, перейдите в окно базы данных, на панели Объекты (Objects) выберите значок Запросы (Queries), выделите нужный запрос в правой части окна и нажмите кнопку Конструктор (Design View) на панели инструментов (рис. 24.4). Если запрос уже открыт, то для перехода в режим конструктора в меню Вид (View) выберите команду Конструктор (Design View ) или нажмите кнопку Вид (View) на панели инструментов.
Если вы захотите снять в запросе какое-либо поля, то в строке Вывод на экран (Show) снимите флажок в соответствующей ячейке. Чтобы удалить поле из бланка запроса, щелкните область выделения столбца и нажмите клавишу Delete .
Для изменения положения поля в запросе поместите указатель в область выделения столбца, он примет вид жирной стрелки, направленной вниз. Щелкните мышью в области выделения и переместите выделенный столбец, удерживая нажатой кнопку мыши.
Вы можете выделить в таблице два или несколько соседних столбцов, а затем выполнить по ним сортировку. В форме возможна сортировка записей только по одному полю. Набор условий, применяемых для отбора подмножества данных или для их сортировки, называется фильтром.
Для сортировки данных в таблице по нескольким полям выберите в меню Записи (Records) команду Фильтр (Filter), Расширенный фильтр (Advanced Filter, Sort) . На экране отобразится окно, в верхней части которого отображен список всех полей таблицы (рис. 24.17). Это окно используется для выбора полей, по которым будет выполняться сортировка. Можно перетащить мышью названия полей из списка в строку Поле (Field). Названия полей, по которым будет производиться сортировка, можно выбрать в строке Поле (Field ) из раскрывающегося списка. (Подробнее работа с окном списка рассмотрена ранее в разделе «Создание запроса» настоящей главы.)
Рис. 24.17 Окно, позволяющее выполнить сортировку по нескольким полям одновременно
В Access сначала сортируются записи, расположенные в самом левом столбце, затем в следующем столбце справа и т.д. Условия сортировки: по возрастанию, по убыванию и т.д. задаются в строке Сортировка (Sort).
После задания условий сортировки выберите в меню Фильтр (Filter) команду Применить фильтр (Apply Filter). Для отображения не отсортированной таблицы выберите в меню Записи (Records) команду Удалить фильтр (Remove Filter, Sort) . Если фильтр создается в форме или таблице, в которой уже есть фильтр, оставшийся от предыдущего сеанса работы, то новый фильтр замещает его.
Запрос на базе нескольких связанных таблиц создается в той же последовательности, что и из одной таблицы, только добавляется ввод имен дополнительных таблиц.
Укажите сначала имя первой таблицы или запроса, на котором должен быть основан создаваемый запрос, выберите поля, данные которых нужно использовать, а затем укажите дополнительную таблицу или запрос и выберите нужные поля. Повторяйте этот шаг до тех пор, пока не будут выбраны все необходимые поля.
В верхней части макета видны линии связи между таблицами, а в нижней части на бланке запроса — имена таблиц и полей (рис. 24.13).
Рис. 24.13 Многотабличный запрос
Для открытия окна мастера запроса в окне базы данных на панели Объекты (Objects) выберите значок Запросы (Queries) и дважды щелкните значок Создание запроса с помощью мастера (Create Query By Using Wizard) (см. рис. 24.1). Другой способ отображения мастера запроса описан ниже в разделе «Создание многотабличных запросов».
В окне Создание простых запросов (Simple Query Wizard) в раскрывающемся списке Таблицы и запросы (Table/Query) выберите таблицы и запросы, поля которых будут использоваться в запросе (рис. 24.4). В списке Доступные поля (Available Fields) дважды щелкните имена используемых в запросе полей. Эти поля переместятся в список Выбранные поля (Selected Fields) . Нажмите кнопку Далее (Next) .
Рис. 24.4 Окно мастера создания простых запросов
При создании запроса по нескольким таблицам во втором окне положением переключателя вам надо выбрать подробный (вывод каждого поля каждой записи) (Detail (shows every field of every record)) или итоговый (Summary ) запрос (рис. 24.5). Итоговые запросы содержат поля, по которым группируются данные, и числовые поля, по которым определяют, например, суммарное, среднее, максимальное или минимальное значение. В итоговом запросе можно произвести подсчет количества записей в группе (Count records in). Для добавления вычислений в результаты запроса нажмите кнопку Итоги (Summary Options) и выберите нужные поля или установите флажок Подсчет числа записей в Итоги (Count records in Quarterly Orders by Product).
Рис. 24.5 Выбор типа создаваемого отчета
В следующем окне мастера вам будет предложено дать имя запросу и положением переключателя определить дальнейшие действия: Открыть запрос для просмотра данных (Open The Query To View Information) или Изменить макет запроса (Modify the query design). После того как вы нажмете кнопку Готово (Finish) , откроется запрос в режиме таблицы.
Для создания составного индекса откройте таблицу в режиме конструктора и на панели инструментов Конструктор таблиц нажмите кнопку Индексы (Indexes) . Откроется окно Индексы, содержащее информацию обо всех индексах таблицы. На рис. 24.16 это окно показано для таблицы Заказано. В первой пустой строке столбца Индекс (Index Name) введите имя индекса. Для этой строки, можно использовать либо имя одного из индексируемых полей, либо другое подходящее имя.
Рис. 24.16 Создание составного индекса
В столбце Имя поля (Field Name) нажмите кнопку раскрытия списка и выберите первое поле, для которого необходимо создать индекс. В следующей строке столбца Имя поля (Field Name) укажите второе индексируемое поле. Оставьте пустым для этой строки поле Индекс (Index Name). Повторите эти действия для всех полей, которые необходимо включить в индекс/Допускается использовать до 10 полей.
В верхней части окна индексов выберите новое имя индекса. В нижней части окна индексов в ячейке Уникальный индекс (Unique) выберите значение Да .
Отметим, что после создания индекса по умолчанию будет использоваться порядок сортировки По возрастанию (Ascending). Чтобы сортировать некоторые поля по убыванию, установите для этих полей в столбце Порядок сортировки (Sort Order) значение По убыванию (Descending).
Чтобы создать таблицу с помощью запроса, откройте ранее созданный запрос в режиме конструктора. Для этого в окне базы данных щелкните значок Запросы (Query) в списке Объекты (Objects), выберите нужный запрос и нажмите кнопку Конструктор (Design) на панели инструментов окна базы данных. Выберите в меню Запрос (Query) команду Создание таблицы (Make Table Query) или щелкните на панели инструментов в раскрывающемся списке кнопки Тип запроса (Query Type) строку Создание таблицы. (Make Table).
В диалоговом окне Создание таблицы. (Make Table) заполните поле имя таблицы (Table Name) (рис. 24.9). Положением переключателя укажите, где будет находиться создаваемая таблица: в текущей базе данных (Current Database) или в другой базе данных (Another Database). Если таблица будет находиться в текущей базе данных, то ее можно выбрать в раскрывающемся списке, если в другой базе данных, то в поле имя файла (File Name) введите полное имя файла базы данных в формате: «полное имя файла» «имя базы данных», например, «C:\Data\Sales» «Paradox».
Рис. 24.9 Создание таблицы с помощью запроса
Нажмите кнопку OK и закройте запрос, нажав кнопку закрытия окна. На экране отобразится окно с вопросом: «Сохранить изменения макета или структуры объекта . ?)». Нажмите кнопку Да (Yes). В окне со списком запросов перед именем созданного запроса появится восклицательный знак.
Двойным щелчком мыши запустите новый запрос. На экране появится сообщение, что запрос на создание таблицы приведет к изменению данных таблицы, созданной ранее на основе запроса (рис. 24.10). Нажмите кнопку До (Yes) . Посмотрите список таблиц в окне базы данных, и дважды щелкните значок таблицы, созданной по результатам запроса, чтобы просмотреть ее.
Рис. 24.10 Предложение подтвердить запрос на создание таблицы
Запрос можно создать с помощью мастера или в режиме конструктора. Как обычно, наиболее простой способ построения запроса предусматривает использование мастера. Режим конструктора (Query Design) позволяет задавать не только условия выбора данных, но и порядок сортировки. Запросы сохраняются как отдельные объекты и отображаются в окне базы данных.
Создание запроса в режиме конструктора предоставляет большие возможности по сравнению с мастером простого запроса.
В диалоговом окне Новый запрос (New Query) выберите в списке в правой части окна элемент Конструктор (Design View) и нажмите кнопку OK (рис. 24.6). На экране отобразится окно запроса в режиме конструктора и диалоговое окно Добавление таблицы (Show Table) (рис. 24.7), которое позволяет выбрать, по каким таблицам и запросам или их комбинации будет создан новый запрос. Окно запроса разделено посредине по горизонтали. В верхней части окна отображены списки доступных в запросе полей всех таблиц, в нижней — спецификация запросов. Каждый столбец отображает поле, используемое для выделения тех записей, которые будут включены в запрос.
Рис. 24.6 Выбор метода создания запроса
Рис. 24.7 Выбор таблицы, для которой будет составлен запрос
На вкладке Таблицы (Tables) диалогового окна Добавление таблицы укажите название исходной таблицы. Нажмите кнопку Добавить (Add) , чтобы добавить список полей этой таблицы в верхнюю часть окна запросов. Для добавления полей таблицы в запрос можно дважды щелкнуть ее имя.
При составлении запроса по нескольким таблицам выберите необходимые таблицы, а затем нажмите кнопку Закрыть (Close). На экране отобразится окно, позволяющее выполнить настройку запроса в режиме конструктора (рис. 24.8). В нижней части окна отображен пустой бланк запроса, который предназначен для определения запроса или фильтра в режиме конструктора запроса или в окне расширенного фильтра.
Рис. 24.8 Окно структуры запроса: 1 — список полей, 2 — бланк запроса
В тех случаях, когда вас интересуют записи, отвечающих определенному условию, например, фамилии клиентов, сделавших заказ дороже определенной суммы, применяют запрос по образцу. При создании запроса вы даете, как бы образец (QBE, query by example — запрос по образцу ), по которому будет составлен ответ или выполнены операции. Поэтому в более версиях Access использовался термин бланк запроса по образцу (QBE).
Создание индекса для одного поля покажем на примере таблицы «Товары». Откройте ее в режиме конструктора. В верхней части окна нажмите кнопку выделения поля, для которого необходимо создать индекс (рис. 24.15). В нижней части окна на вкладке Общие (General) выделите ячейку Индексированное поле (Indexed) и установите значение Да (Допускаются совпадения) (Yes (Duplicates OK)) , если допускает дублирование данных для выбранного поля. Значение Да (Совпадения не допускаются) (Yes (No Duplicates OK)) не допускает совпадения ни для каких двух записей значения этого поля.
Рис. 24.15 Выбор свойства индексированного поля
Запрос позволяет получить из одной или нескольких таблиц базы данных необходимую информацию, отвечающей заданному условию, выполнить вычисления над данными, добавить, изменить или удалить записи в таблице. Например, запрос позволяет просмотреть в таблицах «Клиенты» и «Заказы» данные о клиенте и заказы, которые он разместил, подсчитать их стоимость. С помощью запроса можно обновлять данные в таблице, добавлять и удалять записи, Он может служить основой для формы или отчета.
Назначение запросов:
выбор записей, отвечающих определенным критериям отбора без предварительного открытия конкретной таблицы или формы;
выбор таблиц, содержащих нужные записи, с возможностью последующего добавления других таблиц;
отбор полей, выводящихся на экран при отображении результирующего набора записей;
создание новой таблицы на основе данных, полученных из существующих таблиц;
обновление, добавление и удаление записей таблицах;
выполнение вычислений над значениями полей. В Access различают следующие типы запросов:
запрос на выборку данных (Select query) — позволяет извлечь данные из одной или нескольких таблиц согласно заданному критерию и отобразить их в новой таблице;
перекрестный запрос (Crosstab query) — суммирует в электронной таблице данные из одной или нескольких таблиц. Они используются для анализа данных, создания диаграмм;
запрос с параметрами (Parameter query) — позволяет извлечь данные из одной или нескольких таблиц согласно одному или нескольким параметрам. Например, для поля, в котором отображаются даты, можно ввести приглашения следующего вида «Введите начальную дату:» и «Введите конечную дату», чтобы задать границы диапазона значений;
запрос на изменение (Action query) — создают новые таблицы из запросов. Они позволяют включить новые записи или удалить старые, внести в них изменения с помощью выражений, встроенных в запрос;
запрос SQL (SQL query) — основан на инструкциях SQL (Structured Query Language — язык структурированных запросов). Язык SQL является стандартом для большинства СУБД. В формате SQL в базе данных хранятся все запросы.
Наиболее часто используемым типом запроса является запрос на выборку. Например, из многостраничного железнодорожного расписания, вас могут интересовать только поезда, которые направляются в определенный город в заданно отрезке времени. Запросы на выборку можно также использовать для группировки записей и вычисления сумм, средних значений, подсчета записей и нахождения других типов итоговых значений. Внесенные в таблицу изменения автоматически отображаются в запросе.
По результатам запроса создается временная таблица, которая хранится в памяти компьютера. После сохранения запроса сохраняется только описание его конструкции, а не данные, полученные в результате запроса. Сохраненный запрос можно использовать многократно.
Рис. 24.1 Окно базы данных после . выбора значка Запросы на панели Объекты
До выполнения некоторых запросов на экране могут отобразиться последовательно два окна для ввода начальной и конечной даты, в течение которых будут отбираться данные (рис. 24.2).
Рис. 24.2 Окно для ввода начальной даты отбора данные
Запрос можно открыть в режиме таблицы (рис. 24.3) или в режиме конструктора (рис. 24.8).
Рис. 24.3 Отображение запроса на выборку в режиме таблицы
В Access предусмотрено большое количество вариантов отбора записей из базы данных. Разберем некоторые широко распространенные условия отбора записей, используемые в запросе.
Современные СУБД позволяют различным образом отобразить содержащуюся в них информацию без изменения действительного размещения данных. Одним из наиболее эффективных методов упорядочивания данных по заданным полям является сортировка. В процессе сортировки текстовые записи можно сортировать в.алфавитном порядке. Числовые, денежные, временные данные можно сортировать по возрастанию или убыванию, например, работнику коммерческой фирмы могут потребоваться сведения, кто из клиентов сделал наиболее дорогие заказы.
Записи можно сортировать в режиме таблицы или в режиме формы. Более наглядно результаты сортировки отображаются в режиме таблицы. Если вы попытаетесь закрыть таблицу после сортировки, то появится запрос: «Сохранить изменения макета или структуры таблицы (Do you want to save changes to the design of query)» После закрытия формы измененный порядок сохраняется автоматически.
Сортировка записей осуществляется в соответствии с порядком ключевых полей в бланке в режиме конструктора таблицы. Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала определите ключ, а затем нажмите кнопку Индексы (Indexes) на панели инструментов и в окне Индексы (Indexes) и укажите другой порядок полей для индекса с именем PrimaryKey.
Столбец итогов может содержать итоговые данные для всех записей таблицы или сгруппированных по какому-нибудь принципу. Например, нас может интересовать максимальная или средняя цена товаров (поле Цена) каждого типа (поле Тип), представленных в таблице. Для использования итоговых операторов в указанной задаче выполните следующие действия:
в запросной форме в строке Вывод на экран (Show) поставьте флажки в полях: Тип и Цена, которое будет использоваться для вычислений;
выберите в меню Вид (View) команду Групповые операции (Totals) или jm-жмите одноименную кнопку на панели инструментов;
установите курсор в поле, над значениями которого будут выполняться вычисления, и выберите в ячейке Групповая операция (Total) требуемую функцию;
в меню Запрос (Query) выберите команду Запуск (Run).
С помощью запроса могут быть подсчитаны сумма (Sum) и среднее арифметическое (Avg), найдены минимальное (Min) и максимальное (Max) значения в поле. Закончив работу с запросом, можно сохранить его под каким-нибудь именем.
Рис. 24.11 Составление запроса с использованием групповой операции
Одним из широко распространенных методов анализа табличных данных является использование следующих итоговых функций для полей с числовыми данными:
Sum — вычисление суммы значений поля;
Avg — определение среднего значения поля;
Min — нахождение минимального значения поля;
Мах — нахождение максимального значения поля;
Count — подсчет количества записей поля (может применяться для всех полей);
StDav — расчет стандартного отклонения поля;
Var — расчет изменения значений поля.
Запрос на обновление записей позволяет изменять данные в существующих таблицах. Он вносит общие изменения в группу записей одной или нескольких таблиц. Например, необходимо внести изменения в таблицу в связи с тем, что на 10 процентов увеличивается зарплата сотрудников определенной категории. Можно задать условия отбора, например, возрастает зарплата только тех сотрудников, которые проработали больше трех лет.
Название окна запроса изменится на запрос на обновление (Update Query) . Перетащите из списка полей в бланк запроса поля, которые нужно обновить или которые должны использоваться в условиях отбора. Задайте условие отбора в ячейке Условие отбора (Criteria).
Названия полей заключите в квадратные скобки. Для полей, которые необходимо обновить, введите в ячейку Обновление (Update To) выражение или значение, которое должно быть использовано для изменения полей. Чтобы просмотреть список записей, которые будут обновлены, нажмите кнопку Вид на панели инструментов. Выводимый список не будет содержать новых значений. Для возврата в режим конструктора запроса снова нажмите кнопку Вид на панели инструментов. Завершите создание запроса в режиме конструктора. Нажмите кнопку Запуск на панели инструментов, чтобы обновить записи.
В режиме конструктора запрос можно запустить следующими способами:
выбрать в меню Запрос (Query) команду Запуск (Run);
нажать кнопку Запуск (Run) на панели инструментов.
Результаты ответа на запрос будут представлены в таблице. Чтобы прервать запуск запроса, нажмите клавиши Ctrl+Break.