Материал: Десять шагов в Microsoft_Access

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рис. 2. Окна баз данных Access 97 и Access 2000

Рис. 3. Выбор способа создания таблицы

Принятая почти во всех современных СУБД реляционная модель предполагает, что каждому предмету соответствует одна запись – строка таблицы, а каждой характеристике выделено поле фиксированной длины – столбец таблицы. Таким образом, запись также имеет фиксированную длину, что значительно облегчает доступ к записям таблицы.

6

Начнем формирование базы данных с организации ввода информации о поставщиках. Каждому поставщику будет соответствовать запись таблицы. Для реализации замысла прежде всего требуется создать структуру соответствующей таблицы. Выделим набор наиболее важных характеристик поставщика: название фирмы, адрес, директор, контактные телефоны и другая полезная информация… Список может оказаться довольно внушительным.

Для создания таблицы надо войти в раздел «Таблицы» окна базы данных, нажать кнопку «Создать», в открывшемся диалоговом окне (рис. 3) выбрать пункт меню «Конструктор» и нажать «ОК». На экране появится окно «Конструктора таблиц» (рис. 4). В этом режиме формируется структура таблицы. Верхняя часть представляет собой таблицу, состоящую из трех столбцов: имя поля, тип данных, описание. Имя поля обозначает соответствующий параметр предмета. Тип данных выбирается из списка: Текстовый, Поле MEMO, Числовой, Дата/время, Денежный, Счетчик, Логический, Поле объекта OLE, Гиперссылка, Мастер подстановок. Поскольку данное пособие не претендует на роль справочника, типы данных мы будем рассматривать по ходу разработки структур таблиц. В столбце «Описание» для каждого из полей можно ввести пояснительный текст. Итак, приступим к формированию структуры таблицы.

Первому полю дадим имя «поставщик» и присвоим тип данных «Счетчик». Этот тип данных представляет собой натуральное число. В первой записи устанавливается значение поля 1. Далее при вводе каждой новой записи это значение автоматически увеличивается на единицу. Таким образом, при заполнении таблицы это поле заполняется автоматически и естественным образом обеспечивается уникальность его значения. Сделаем это поле ключевым. Для этого щелкнем клавишей мыши по значку «ключик» на соответствующей панели инструментов окна приложения. Убедимся, что слева от имени поля «поставщик» появился «ключик». Объявление поля «ключевым» обеспечивает уникальность содержимого этого поля. Поскольку поле типа «Счетчик» и так имеет уникальное значение, может возникнуть впечатление, что «ключик» при нем – просто излишество. Тем не менее в дальнейшем мы убедимся, что последнее действие не лишено смысла.

Следующему полю (рис. 4) дадим имя «название» и присвоим тип «Текстовый». Это поле будет хранить название фирмы-поставщика. Теперь настало время обратить внимание на набор свойств поля, расположенный внизу окна конструктора. В общем случае этот набор зависит

7

от типа поля. Так, для типа «Текстовый» первым будет свойство «Размер поля». По умолчанию размер обычно равен 50. Допустив, что наши поставщики не имеют таких длинных названий, исправим последнее значение на 30. Сделаем это поле обязательным, установив в соответствующей строке значение «Да». Теперь система откажется вносить новые записи, в которых это поле не заполнено. Остальные поля обязательными делать не будем, дабы не брать на себя заботу повсеместно заполнять их!

Рис. 4. Создание таблицы в режиме конструктора

Поле «адрес» также сделаем текстовым длины 40.

«Директор» пусть будет текстовым полем длины 25.

«Телефон» также определим как текстовое поле. Выбор длины оставляем на усмотрение разработчика. При этом в качестве маски ввода введем соответствующей длины последовательность цифр «9». Теперь на этих местах могут стоять только цифры или пробелы. Любой другой символ при вводе будет отвергнут. Маска может не только обеспечить ввод форматированных данных, но и преобразовать, например,

8

все вводимые символы к верхнему регистру или вставить в нужные позиции скобки и дефисы.

Особое место занимает поле «MEMO». Как уже было отмечено выше, реляционная модель предполагает равенство в каждой записи длин соответствующих полей. Часто пользователь хочет оставить за собой возможность ввода дополнительной текстовой информации о предмете. Во-первых, не все можно предусмотреть на стадии разработки. Во-вторых, текстовая строка, которую Вы хотели бы разместить в данном поле, может иметь широкий диапазон длин. Тогда, зарезервировав небольшую длину, Вы лишаете себя возможности в некоторых записях хранить весь текст. Зарезервировав же максимально возможную длину, Вы существенно увеличиваете объем каждой записи, а значит, и всей таблицы, что ведет не только к неэффективному использованию памяти, но и к замедлению значительной части операций над данными таблицы. Поле «MEMO» решает эту задачу путем компромисса: текстовое поле имеет неограниченную длину, но зато хранится вне таблицы. В таблице хранится только ссылка на текст. Таким образом, доступ к информации, хранящейся в полях «MEMO», значительно замедляется и эти поля нецелесообразно брать за основу сортировки или использовать в операциях типа поиска. Такие поля, как правило, служат для того, чтобы пользователь имел возможность получить более подробную или не укладывающуюся в структуру таблицы информацию об отдельном предмете.

Сформировав структуру таблицы, выйдем из «Конструктора». Нажмем «крестик» в правом верхнем углу окна «Конструктора» и в появившемся диалоговом окне на вопрос «Сохранить изменения?» ответим «Да». В окне «Сохранение» дадим таблице имя «поставщики». Любым объектам базы данных желательно присваивать имена, непосредственно указывающие на их назначение! Теперь в разделе «Таблицы» окна базы данных появится имя первой таблицы (рис. 5).

Рис. 5. Создана таблица «Поставщики»

9

В дальнейшем, если возникнет необходимость изменить структуру таблицы, надо выделить ее имя и нажать кнопку «Конструктор» в окне базы данных. Теперь можно приступить к вводу данных. При вводе поле «поставщик», которому мы присвоили тип «Счетчик», заполняется автоматически. Для удобства ввода можно расширить изображение любого столбца на экране, установив указатель курсора на границе между названиями соответствующих полей, нажав левую клавишу мыши и передвинув границу вправо. Но при большой длине записи нам придется постоянно пользоваться полосой прокрутки.

Рис. 6. Заполненная таблица «поставщики»

В любом случае в таблице неудобно заполнять поля «MEMO», содержащие произвольной длины текст. Итак, у нас возникло два противоре-

10