При раскрытии фрагмента связанной таблицы знак «плюс» превращается в знак «минус». Чтобы скрыть дополнительную таблицу, щелкните на нем еще раз.
13. Щелкните еще на каком-нибудь знаке «плюс», и вы увидите описание всех контактов с еще одним человеком. Таким образом, с помощью созданной связи вы можете быстро просматривать в окне таблицы Список описания всех контактов с определенным человеком или группой лиц.
Упражнение 6. Параметры поля
Для того, чтобы обеспечить возможность хранения в базе данных разнообразной информации, Access предлагает большой набор типов данных, перечисленных в табл. 1.
ТАБЛИЦА 1. Типы данных
Название типа
Назначение
Текстовый (Text)
Текст длиной до 255 символов
Поле MEMO (Memo)
Текст длиной до 65 000 символов
Числовой (Number)
Числа различных форматов
Дата/время (Date/Time)
Дата и/или время
Денежный (Currency)
Денежные значения различных форматов
Счетчик (AutoNumber)
Счетчик, который автоматически увеличивается на единицу с добавлением каждой новой записи
Логический (Yes/No)
Величины, способные принимать только два значения: да/нет или 1/0
Поле объекта OLE (OLE Object)
Поля, позволяющие вставлять рисунки, звуки и данные других типов
Гиперссылка (Hyperlink)
Ссылки, дающие возможность открывать объект Access (таблицу, форму, запрос и т. п.), файл другого приложения или web-страницу
Чтобы сделать работу со списком контактов более продуктивной, следует изменить типы данных некоторых полей.
1. В окне базы данных выделите таблицу Список и щелкните на кнопке Конструктор, расположенной в верхней части окна. Выбранная таблица откроется в режиме конструктора.
2. Описание контакта может быть достаточно длинным, а максимальная длина текстовых полей ограничена 256 символами. Поэтому измените тип поля Описание на Поле MEMO.
3. Щелкните на поле Дата.
Рис. 14.Выбор формата
4. Для удобства прочтения даты контакта измените 4юрмат ее отображения, выбрав в раскрывающемся списке Формат поля пункт Длинный формат даты, как показано на рис. 14.
Кроме типа данных и формата отображения вкладка Общие окна конструктора позволяет настроить некоторые дополнительные параметры поля, влияющие на способ ввода данных. Параметр Значение по умолчанию задает содержимое поля, которое записывается в новую запись в том случае, если пользователь не ввел в это поле никаких данных. Если вы регулярно обновляете список контактов, то дата контакта чаще всего будет совпадать с текущей датой. Чтобы упростить ввод информации, можно задать текущую дату в качестве значения по умолчанию для поля Дата.
5. Введите в поле Значение по умолчанию функцию Date(), которая возвращает текущую дату. В некоторых случаях требуется не только задать тип данных поля, но и ограничить его возможные значения некоторым интервалом или более сложным правилом отбора. Такое правило вводится в поле Условие на значение. Предположим, вы точно знаете, что все контакты, которые будут заноситься в список, состоятся после 1 января 1999 г. Чтобы избежать ошибок, можно заставить Access сообщать вам о вводе неверной даты. Для этого выполните следующие шаги.
6. В поле Условие на значение щелкните на кнопке построителя выражений. Откроется окно диалога. Для задания условий или значений определенных параметров Access предлагает большой набор математических операций и функций. Построитель выражений помогает ориентироваться во всем многообразии функций Access. Верхнее прокручивающееся поле построителя содержит конструируемое выражение. Его можно изменять как путем непосредственного редактирования текста, так и с помощью других кнопок и списков построителя.
7. Необходимо, чтобы дата записи была позднее, то есть больше, даты 1 января 1999 г. Поэтому щелкните на кнопке >, чтобы добавить нужное условие.
Теперь нужно указать дату, с которой выполняется сравнение. Для этого следует воспользоваться специальной функцией, преобразующей строковую константу в дату в формате Access.
8. Дважды щелкните на папке Функции в левом списке построителя выражений.
9. Щелкните на папке Встроенные функции, чтобы вывести список стандартных функций Access.
10. В среднем списке выберите категорию Дата/время.
11. Двойным щелчком на имени функции DateValue добавьте ее в поле выражения. Вместо местозаполнителя аргумента «stringexpr» нужно ввести конкретную дату в строковом формате.
12. В поле выражения щелчком выделите текст «stringexpr», а затем напечатайте "1.1.99".
13. Щелкните на кнопке ОК.
Рис. 15.Параметры поля Дата
14. В поле Сообщение об ошибке введите текст Неверная дата, который будет появляться при вводе даты, более ранней, чем 1 января 1999 г. Окончательный набор параметров поля Дата показан на рис. 15.
15. Щелкните на кнопке закрытия окна конструктора. В окне запроса на обновление структуры таблицы щелкните на кнопке Да. По причине добавления условий на значения поля Дата Access запросит о необходимости проверки содержимого этого поля в уже имеющихся записях таблицы. Щелкните на кнопке Нет, чтобы не выполнять проверку.
Давайте изучим влияние настроенных параметров на поведение базы данных.
16. Выделите таблицу Список в окне базы данных и щелкните на кнопке Открыть. Теперь все даты отображаются в длинном формате, а в ячейке Дата в строке новой записи автоматически появляется текущая дата.
17. Щелкните в ячейке Дата второй строки, измените ее содержимое на 19.11.95 и нажмите клавишу Tab, чтобы перейти к следующему полю. Так как модифицированная дата предшествует 1 января 1999 г., что противоречит настроенному условию, Access не позволит убрать курсор из текущей ячейки и откроет окно сообщения с текстом, введенным вами в поле Сообщение об ошибке конструктора таблицы на шаге 14. Такое сообщение будет появляться до тех пор, пока вы не скорректируете дату.
18. Щелкните на кнопке ОК.
19. Исправьте дату на 19.11.00.
20. Закройте таблицу Список.
Упражнение 7. Индекс
Для ускорения поиска данных о конкретном человеке в таблице Контакты удобно рассортировать записи по алфавиту. Чтобы назначить сортировку по полю Фамилия, выполните следующие шаги.
1. В окне базы данных щелкните на значке таблицы Контакты.
2. Щелчком на кнопке Открыть откройте таблицу в режиме редактирования.
3. В окне таблицы щелкните на заголовке Фамилия, чтобы выделить столбец.
Рис. 16.Сортировка фамилий по алфавиту
4. Щелчком на кнопке Сортировка по возрастанию упорядочите записи столбца фамилии таблицы по алфавиту (рис. 16).
5. Вставьте в таблицу еще несколько человек с фамилией Петров. Например, Василий Петров, Николай Петров и Игорь Петров. Добавляйте записи в указанном порядке.
6. Чтобы обновить сортировку, закройте окно таблицы Контакты и вновь откройте таблицу. Записи будут расположенны как показано на рис. 17.
Рис. 17.Несколько человек с одинаковыми фамилиями
Фамилии упорядочены по алфавиту, но имена людей расставлены в беспорядке. Если бы в таблице было несколько сотен людей с фамилией Петров, то поиск нужного человека существенно бы осложнился. Чтобы выполнить сортировку сразу по нескольким полям, следует воспользоваться сложным индексом. Его настройка выполняется посредством следующих действий.
7. Щелчком на кнопке Вид переключитесь в режим конструктора.
8. Чтобы открыть окно индексов таблицы Контакты, показанное на рис. 18, щелкните на кнопке Индексы панели инструментов. В окне индексов есть список со столбцами названия индекса, имени поля, по которому выполняется индексация, и режима сортировки (по возрастанию или по убыванию). Мастер таблиц при создании таблицы Контакты индексировал ее потрем полям: Название Компании, Фамилия, Код_Контакты, добавив индексы с именами соответственно: Название Компании, Фамилия и PrimaryKey. Последний из трех индексов является ключом таблицы, однозначно идентифицирующим ее записи. Все имеющиеся индексы простые, то есть назначают сортировку только по одному полю. Чтобы записи с одинаковыми фамилиями располагались по алфавиту имен, следует модифицировать индекс Фамилия, добавив в него условие сортировки по полю Имя. Для этого выполните следующие шаги.
Рис. 18.Индексы
9. Щелкните правой кнопкой мыши на той строке, которая расположена ниже строки индекса Фамилия.
10. Выберите в контекстном меню команду Добавить строки, чтобы вставить одну пустую строку.
11. В новой строке щелкните на кнопке раскрывающегося списка ячейки Имя поля.
12. Выберите пункт Имя. В столбце Порядок сортировки автоматически появится вариант По возрастанию.
Рис. 19.Сортировка по двум полям
В окне настройки индексов имена полей, по которым происходит упорядочивание в данном индексе, располагаются в строке с именем индекса и ниже ее в строках с пустой ячейкой Индекс в порядке убывания влияния поля. То есть первой выполняется сортировка по тому полю, которое в данном индексе расположено выше. В одном индексе можно использовать до 10 полей. Таким образом, теперь индекс Фамилия упорядочивает записи по алфавиту сначала по фамилиям, а потом по именам.
13. Закройте окно индексов.
14. Щелкните на кнопке Вид, чтобы переключиться в режим редактирования таблицы.
15. Ответьте Да на запрос о необходимости сохранения таблицы. Теперь имена оказались выстроенными по алфавиту, как показано на рис. 19. Поскольку перед этим уже была настроена сортировка по полю Фамилия (то есть по индексу Фамилия, главным полем которого является Фамилия), вам даже не пришлось перенастраивать сортировку. Модификация индекса автоматически привела к упорядочению имен.