А.Ю. Гончаров Access 2003 (960524), страница 12
Текст из файла (страница 12)
Такобеспечивается принцип модульности данных: каждая таблица хранит данные из62Глава2определенной предметной области, и в этом случае таблицы легче редактировать.Связь «один-к-одному» можно представить и наглядно. Допустим, у вас есть листбумаги, на котором изображена большая таблица. Его можно разрезать по вертикали так, чтобы часть колонок попала на одну половину листа, а часть - на другую. Вы можете использовать половинки листа по отдельности.
С ними могутработать одновременно два человека. Но в любой момент две части листа можносоединить, и таблица вновь станет целой.Связь «многие-ко-многим»Необходимость создания такой связи возникает, когда в обеих таблицах кодовые поля содержат повторяющиеся значения. Access не создает связи такоготипа, и ее приходится делать, используя две связи «один-ко-многим» и вспомогательную таблицу, в которой есть два кодовых поля и собраны только уникальныезначения кодовых полей основных таблиц. Пример создания такой связи подробно рассмотрен в главе 7.Глава 3Пример простейшей базы данныхРассмотрим в качестве примера базу данных, состоящую из одной таблицы.Такую базу данных нетрудно создать за полчаса и сравнительно нетрудно заполнить данными. Нам не придется определять связи между таблицами, создаватьсложные формы и заниматься программированием.
Зато мы сможем разобраться,какие инструменты предлагает Access для работы с базой данных.Сформулируем задачу следующим образом: создать несложную базу данныхдля хранения списка организаций и последующей связи с этими организациямипо телефону. Такая задача часто возникает в коммерции - сообщить о. новых товарах, предложить услуги и т. д.Создать список организаций можно в разных программах: в Word, в Excel,в Access.
Все эти способы будут обладать своими преимуществами и недостатками. Нам важно, что можно получить в этом плане от Access.Для того чтобы не усложнять работу оператора, целесообразно сосредоточить вседанные в одной таблице. Попробуем определить, какие поля потребуются. Представим себе, как оператор снимает трубку телефона и набирает номер: «Алло, этофирма Тип-Ton? Мы хотим предложить вам канцелярские товары». Ответы могутбыть самые разные: «Нам это не интересно», «Позвоните Ивану Ивановичу по телефону 11-22-33», «Позвоните через месяц», «Отправьте прайс-лист по факсу» и т.
д,Оператор должен быстро записать результат и звонить в следующую организацию.А если телефон занят? Тогда надо переходить к следующему, а к этому вернутьсячуть позже.При сборе телефонов надо предусмотреть другие особенности: по понятнымпричинам один и тот же телефон не должен попадать в таблицу дважды.Создадим новый файл базы данных и назовем его organizacii.mdb. Создадимв нем таблицу Организации.64Глава 33.2.
Создание таблицыТаблицу удобнее создавать в режиме конструктора. В ней можно предусмотреть такие поля:Формат поляИмя поляstСчетчик с последовагельной нумерацией, ключТелефонТекстовое, 30 символов, совпадения не допускаютсяОКЛогическоеНазваниеТекстовое. 50 символов, совпадения не допускаются, верхний регистрФИОТекстовое, 50 символовРезультатТекстовое, 30 символовАдресТекстовое, 50 символовПримечаниеMEMOПоле st представляет собой счетчик с последовательной нумерацией.
Мы сделаем это поле ключевым, хотя на эту роль в нашем примере подошли бы и другиеполя: Телефон или Название.. Для хранения номеров телефонов используется текстовое поле. Мы уже убедились в предыдущей главе, что тридцати символов достаточно для хранениядаже номеров сотовых телефонов. Это поле должно быть определено как индексированное, потому что требуется запретить повторы значений.
Незачем ставитьоператора в неловкое положение, вынуждая его звонить в одну и ту же организацию по нескольку раз.Рядом следует поместить поле с «галочками». После звонка можно будет отметить эту запись. «Галочки» позволят вернуться к тем номерам, где было занято.Имя ОК вполне подойдет для такого поля. Имя не должно быть длинным, потомучто само узкое, а место на экране надо экономить.После набора номера следует вопрос: «Это фирма такая-то?...» Поэтому следующим полем будет название организации. Видимо, пятидесяти символов будетдостаточно. Я предлагаю сделать так: проиндексировать это поле, запретив совпадения.
Бывает, что несколько организаций имеют одинаковые названия, нов базе данных их все равно надо как-то различать (хотя бы по номерам). Крометого, для облегчения работы можно сделать так, что все символы будут автоматически переводиться в верхний регистр. Для этого надо в строке Формат нолязаписать соответствующий символ маски. Вкладка параметров поля Название показана на рис. 3.1.Пример простейшей базы данных.гОрганизации : таблн1V».stИ(1Я ПОЛЯ->ТелефонОКhe зван» 16ФИО- РезультатАдресПримечаниеРа;иев поляФорпат поляМаска ввоазПодписвЗначение по умолчаниюУсловие нэ значениеСообщение об ошибкеОбязательное пале{ П/стые строкиИндексированное полеСжатие ю никол1Режим IME;• Режим предложений 1МЁСмарт-теги;••:,,"_,.'.Тип данныхСчетчикТекстовыйЛогическийТекстовыйТекстовыйТекстовыйТекстовыйПоле MEMO1Описание-JQii1 лV50>НетНетДа (Совпадения не л опус каюте: а)Имя пс.гз можетсостоять из 1,4знаков с учет онпробелов Днясправки г ю шле-намполейнажмитеклавир.
F1.НетНет контроляrtet~~~=™.::__Рис. 3.1. Структура таблицы ОрганизацииСледующим, по логике, должно идти поле с фамилией, именем и отчествомчеловека, которого следует позвать к телефону. Длина этого поля должна бытьдостаточно большой (50 символов). Каких-либо дополнительных свойств даватьполю не обязательно.После этого следует предусмотреть поле, в которое оператор запишет результат переговоров. Оно тоже должно быть достаточно длинным.Поле Адрес создается на тот случай, если потребуется сохранить адрес организации.
Я рекомендую во всех случаях, когда дело касается каких-либо координат(почтовых адресов, адресов сайтов, адресов электронной почты, номеров факсови т. д.), создавать для них отдельные поля. Это как раз тот случай, когда созданиебазы данных полностью оправдано.На всякий случай предусмотрим и поле большого объема (типа MEMO).Не будем оригинальными и назовем его Примечание.На этом создание таблицы заканчивается, можно переключаться в режим просмотра данных (команда Режим таблицы) и заполнять таблицу данными.3-87066Глава 33.3. Ввод данных в таблицуВвод данных - достаточно простой процесс, но существуют некоторые особенности, которые можно отразить в руководстве пользователя, если такое руководство будет создаваться.Например, если при вводе в поле Телефон данные будут повторены, то программа выведет предупреждающее сообщение (рис.
3.2).Microsoft Office AccessИзменения не были успешно внесены из-за повторяющихся значений в индексе,ключевых поля/ или с&язя*. Измените данные в попе или паля/., содержащиеповторяющиеся значения, удалите индекс или переопределите его, чтобыразрешить псвтсряющиесй значения, и повторите попытку.Рис. 3.2. Предупреждение о недопустимости ввода повторяющихся значенийОператор, который вводит данные, должен знать, что в этом случае надо закрытьэто окно и сразу исправить значение поля. В противном случае Access не отступитсяи будет «бомбардировать» пользователя предупреждающими сообщениями.То, что для поля Название был предусмотрен специальный формат, отражаетсяна работе таблицы.
Дело в том, что формат влияет только на визуальное представление данных, не затрагивая самих данных. Так, в нашем случае не будет выполняться физическое переформатирование данных. Перевод всех букв в верхнийрегистр будет выполняться только для вывода на экран. Когда оператор устанавливает курсор в одной из ячеек поля Название, буквы предстают в том формате,как были введены.К таблице можно применить команду Формат => Шрифт. Для всей таблицыможно изменить шрифт, его размер и цвет. На функционировании базы данныхэто никак не сказывается.Для вставки новой записи служит соответствующая кнопка, команда в главном меню или комбинация клавиш Ctrl и «плюс». Новая запись всегда вставляется в конец таблицы.
Но если пользователь видит последнюю строку таблицы, тоему нет необходимости создавать новую запись, так как это делается автоматически. Надо просто начать ввод новых данных.Информация в таблице сохраняется программой автоматически, хотя в Accessсуществует специальная кнопка и команда Сохранить запись. Если операторхочет ненадолго отойти от рабочего места, достаточно щелкнуть кнопку Сохранить и свернуть (или закрыть) открытую таблицу.Пример простейшей базы данных67Для удаления записи существует специальная команда.
Можно также удалитьнесколько смежных записей, если выделить их одновременно. Для -этого надопровести мышью по областям выделения записей или щелкнуть первую записьиз числа удаляемых, а потом, при нажатой клавише Shift, последнюю. В отличиеот многих программ, Access не поддерживает выделение несмежных записей припомощи клавиши Ctrl. Для сравнения: Excel позволяет выделять несмежныестроки таблицы, если щелкать на их заголовках, удерживая клавишу Ctrl.Перед удалением записей Access выводит предупреждающее сообщение, показанное на рис.
3.3. Обратите внимание, что отменить удаление записей невозможно.Microsoft Office AccessПредпринимается попытка удалить следующее число записей: 1.t \ Дпя удаления записей нажмите кнопку "Да". Отмена изменений будет'"* 'I невозможна,Удалить записи'Рис. 3.3. Окно для разрешения удаления записейКогда объем вводимых данных не очень большой, для работы с таблицей достаточно мыши. Но когда текста много, сэкономить время позволяют «горячиеклавиши». Иногда проще держать в памяти нужную комбинацию и испольюватьее, чем выполнять лишние движения мышью.