Упражнение 6. Параметры поля
Для того, чтобы обеспечить возможность хранения в базе данных разнообразной информации, Access предлагает большой набор типов данных (табл. 1).
Чтобы сделать работу со списком контактов более продуктивной, следует изменить типы данных некоторых полей.
1. В области переходов выделите таблицу Список, как показано на рис. 14, щелкните на ней правой кнопкой мыши и выберите в контекстном меню команду Конструктор.Выбранная таблица откроется в режиме конструктора.
Таблица 1.Типы данных
Название типа | Описание |
Текстовый Поле МЕМО Числовой Дата/Время Денежный Счетчик Логический Поле объекта OLE Гиперссылка | Текст длиной до 255 символов Текст длиной до 65 535 символов Числа различных форматов Дата и (или) время Денежные значения различных форматов Счетчик, который автоматически увеличивается на единицу с добавлением каждой новой записи Величины, способные принимать только два значения: да или нет, либо 1 или 0 Поля, позволяющие вставлять рисунки, звуки и данные других типов Ссылки, дающие возможность открыть объект Access (таблицу, форму, запрос и т.п.), файл другого приложения или веб-страницу |
2. Описание контакта может быть достаточно длинным, а максимальная длина текстовых полей ограничена 256 символами, поэтому измените тип поля Описание на Поле МЕМО.
3. Щелкните в поле Дата.
4. Для удобства прочтения даты контакта измените формат ее отображения, выбрав в раскрывающемся списке Формат поля пункт Длинный формат даты, как показано на рис. 14.
Помимо типа данных и формата отображения вкладка Общие окна конструктора позволяет настроить некоторые дополнительные параметры поля, влияющие на способ ввода данных. Параметр Значение по умолчанию определяет содержимое поля, которое запишется в новую запись в том случае, если пользователь не введет в это поле никаких данных. Если вы регулярно обновляете список контактов, то дата контакта чаще всего будет совпадать с текущей датой. Чтобы упростить ввод информации, можно задать текущую дату в качестве значения по умолчанию для поля Дата.
5. Введите в поле Значение по умолчанию функцию Date ( ), которая возвращает текущую дату.
В некоторых случаях требуется не только задать тип данных поля, но и ограничить его возможные значения определенным интервалом или более сложным правилом отбора. Такое правило вводится в поле Условие на значение. Предположим, вы точно знаете, что все контакты, которые будут заноситься в список, состоятся после 1 января 2007 года. Чтобы избежать ошибок, можно заставить Access сообщать вам о вводе неверной даты.
Рис. 14. Выбор формата
6. В поле Условие на значениещелкните на кнопке построителя выражений. Откроется диалоговое окно, показанное на рис. 15. Для задания условий или значений определенных параметров Accessпредлагает большой набор математических операций и функций. Построитель выражений помогает ориентироваться во всем многообразии функций Access. Верхнее прокручивающееся поле построителя содержит конструируемое выражение. Его можно изменять как путем непосредственного редактирования текста, так и с помощью кнопок и списков построителя.
Рис. 15.Построитель выражений
7. Необходимо, чтобы дата записи была позднее, то есть больше даты 1 января 2007 г. Поэтому щелкните на кнопке >, чтобы добавит нужное условие.
Теперь нужно указать дату, с которой выполняется сравнение. Для этого следует воспользоваться специальной функцией, преобразующей строковую константу в дату в формате Access,
8. Дважды щелкните на папке Функции в левом списке построителя выражений.
9. Щелкните на папке Встроенные функции, чтобы вывести список стандартных функций Access.
10. В среднем списке выберите категориюДата/время.
11. Двойным щелчком на имени функции DataValue добавьте ее в поле выражения. Вместо местозаполнителя аргумента «stringexpr» нужно ввести конкретную дату в строковом формате.
12. В поле выражения щелчком выделите текст «stringexpr» и введите строку «01.01.2007».
13. Щелкните на кнопку ОК.
14.
Рис. 16. Параметры для поля Дата
15. Щелкните на кнопке закрытия окна конструктора. В окне запроса на обновление структуры таблицы щелкните на кнопке Да. По причине добавления условий на значения поля ДатаAccess попросит о необходимости проверки содержимого этого поля в уже имеющихся записях таблицы. Щелкните на кнопке Нет, чтобы не выполнять проверку. Давайте изучим влияние настроенных параметров на поведение базы данных.
16. Щелкните дважды на таблицеСписокв области переходов. Таблица откроется, и вы увидите, что теперь все даты отображаются в длинном формате, а в ячейке Дата в строке новой записи автоматически появляется текущая дата.
17.
Сообщение об ошибке |
Рис. 17.Сообщение о неверных данных
18. Щелкните на кнопке ОК.
19. Исправьте дату на 02.02.2007.
20. Закройте таблицу Список.
Упражнение 7. Индекс
Для ускорения поиска данных о конкретном человеке в таблице Контакт удобно рассортировать записи по алфавиту. Чтобы назначить сортировку по полю Фамилия, выполните следующие шаги.
1. В области переходов выделите таблицу Контакт (рис.18).
2. Чтобы открыть таблицу в режиме ввода данных, щелкните на ней правой кнопкой мыши и выберите в контекстном меню команду Открыть.
Рис. 18. Сортировка фамилий по алфавиту
3. В конце таблице щелкните на заголовке Фамилия, чтобы выделить столбец.
4. Щелчком на кнопке По возрастанию в группе Сортировка и фильтр вкладкиГлавная упорядочите записи столбца фамилий таблицы по алфавиту.
5. Вставьте в таблицу еще несколько человек с фамилией Суханов. Например, введите в указанном порядке записи Николай Суханов, Анатолий Суханов и Виктор Суханов.
6. Чтобы повторить сортировку, закройте окно таблицы Контакт и вновь откройте таблицу. Записи окажутся расположенными так, как показано на рис. 19. Фамилии упорядочены по алфавиту, но имена людей не отсортированы. Если бы в таблице было несколько десятков людей с фамилией Суханов, поиск нужного человека существенно бы усложнился. Чтобы выполнить сортировку сразу по нескольким полям, следует воспользоваться сложным индексом.
Рис. 19. Несколько человек с одинаковыми фамилиями
7. Щелчком на кнопке Режим переключитесь в режим конструктора.
8. Чтобы открыть окно индексов таблицы Контакт(рис.20), щелкните на кнопке Индексы в группе Показать и скрыть вкладкиКонструктор. В окне индексов есть список со столбцами названия индекса, имени поля, по которому выполняется индексация, и режима сортировки (по возрастанию или убыванию). Индекс PrimaryKey является ключом таблицы, однозначно идентифицирующим ее записи. Данный индекс простой, то есть он назначает сортировку только по одному полю Код. Чтобы записи с одинаковыми фамилиями располагались по алфавиту имен, следует создать индекс Фамилия с условием сортировки по
Рис. 20. Индексы
9. Введите в поле названия индекса текст Фамилия.
10. Нажмите клавишу Tabи выберите пункт Фамилия в раскрывающемся списке ячейки Имя поля.В столбце Порядок сортировки автоматически появится вариант По возрастанию.
11. Щелкните правой кнопкой мыши в той строке, которая расположена ниже строки индекса Фамилия.
12. Выберите в контекстном меню команду Вставить строки, чтобы добавить одну пустую строку.
13. В новой строке столбца Имя поля щелкните на кнопке раскрывающегося списка.
14. Выберите пункт Имя. В столбце Порядок сортировки автоматически появится вариант По возрастанию.В окне настройки индексов имена полей, по которым происходит упорядочивание в данном индексе, располагаются в строке с именем индекса и ниже ее в строках с пустой ячейкой Индекс в порядке убывания влияния поля. То есть первой выполняется сортировка по тому полю, которое в данном индексе расположено выше. В одном индексе можно использовать до 10 полей. Таким образом, теперь индекс Фамилия упорядочивает записи по алфавиту сначала по фамилиям, а потом по именам.
15. Закройте окно индексов.
16. Щелкните на кнопке Режим, чтобы переключиться в режим редактирования таблицы.
17. Ответьте Да на запрос о необходимости сохранения таблицы. В результате имена окажутся выстроенными по алфавиту (рис. 21).
Рис. 21.Сортировка по двум полям