А.Ю. Гончаров Access 2003 (960524), страница 31
Текст из файла (страница 31)
7.15. Четвертый шаг мастера подстановокТеперь полезно проверить, как сделанные в таблице изменения отразилисьна других объектах базы данных. Откроем Запрос-Книги. Достаточно щелкнутьна поле Жанр, чтобы увидеть список и возможные значения поля.Глава?174Создание подстановкиЗадайте ширину столбцов, которые содержит столбец подстановки,Перетащите правую границу заголовка столбца на нужную ширину или дваждыщелкните ее для автоматического подбора ширины.Рис. 7.16. Пятый шаг мастера подстановокОткроем форму ФормаКннги.
Поле Жанр не имеет списка, значит, это поленадо доработать. Откроем форму в режиме конструктора. Нам потребуется элемент управления «поле со списком» и его мастер. В первую очередь необходимоубедиться, что кнопка Мастера на панели инструментов Панель элементов находится в нажатом состоянии. Затем надо нажать кнопку Поле со списком на тойнее панели и на свободном месте в форме нарисовать контур будущего поля. Появится поле и подпись к нему.Одновременно откроется окно Создание полей со списком (рис. 7.17). Этотмастер очень похож на мастер подстановок, проиллюстрированный выше, поэтому я остановлюсь только на отличиях в работе с ними.На первом шаге мастера мы выбираем верхнее положение переключателя.На втором шаге так же устанавливаем переключатель в положение Запросыи выбираем в качестве источника данных ЗапросЖанры.
На третьем выбираем(переносом в правую область) поле Жанр. На четвертом шаге не выбираем ничего,потому что режим сортировки уже задан. Пятый шаг тоже проходим без редактирования, потому что задавать сейчас размеры поля не имеет смысла, мы этосделаем позже и более эффективно. Шестой шаг мастера показан на рис. 7.18. Онсамый ответственный — надо выбрать поле таблицы (запроса), в которое будет заноситься выбранное пользователем значение. Напомню, что форма сделана наоснове запроса ЗапросКниги, так что нам требуется только поставить пере-Книжная база данных (пример)идание полей со списком~ЛМастер создает попе со списком, в котороп отображаетсясписок значений для выбора.
Каким способен попе со спискомбудет получать эти значения?0126-ъект "голе со стихом" будет использовать значения из|та6лицы или запроса.О будет введен фиксированный набор знамений.Q Поиск ааписн е форме на основе значения, котороесодержит поле со списком.Рис. 7.17. Первый шаг мастера «поля со списком»ключатель во второе положение и выбрать поле Жанр (фактически мы сейчас выбираем поле из ТаблицаКниги, потому что запрос является толькопромежуточным объектом в информационном потоке). В этом окне можно нажать кнопку Готово, так как последний (седьмой) шаг мастера значения не имеет,Создание полей со спискомMicrosoft Office Access позволяет со!^имить выбранное изобъекта 'попе со списком" значение в базе данных илииспользовать зто значение в дальнейшем для выполнениядействия, Какое действие будет выполняться при выборезначения из объекта "поле со списком"?Рис.
7.18. Шестой шаг мастера «поля со списком»: надовыбрать поле, в которое будет записываться информацияГлава 7176Мастер закрылся. Что изменилось в конструкторе форм? Теперь в форме естьдва поля Жанр. Этот момент отображен на рис. 7.19. Можно переключиться в режим просмотра формы и убедиться, что выбранное из раскрывающегося спискаЖанр значение сразу же появляется и в обычном поле Жанр. Для проверки можнооткрыть ТаблицаКнигв и убедиться, что данные записываются и туда, - нам,разумеется, необходимо, чтобы данные записывались в таблицу.ЛФормаКнити : форма:i- .П1.
1 . 3 • i ' 4 • i • 5 • ' - £• • i • 7 • i • В • У • 9 • i • 10 • i • Ч • 1 • 12 • i • 13 • iЛ* Заголовок формы* Область данныхSI1_1(1ЖанрЖанрАвторHaaafe/bCTB°ИздательствАннотация"СтранаСтранаСерияСерияНазвание КнигиН азе ан и е Книги]%ilp1..|^Камр•"•ГодВс^онаГсиВыхадаj•.v !Рис. 7.19. В форме появилось поле Жанр с раскрывающимся спискоми подпись к немуТеперь можно вернуться в режим конструктора. Надо удалить старое полеи поместить на его место новое. Если вы будете выполнять эту операцию, проводите ее в такой последовательности:1. Выделите подпись старого поля Жанр, раскройте окно ее свойств и запишите дляпамяти координаты и размеры: От левого края (величина отступа от левогокрая формы), От верхнего края (величина отступа от верхнего края формы).Ширина, Высота.2.
Выделите старое поле Жанр и запишите те же характеристики. Закройте окносвойств.Нажмите клавишу Delete, чтобы удалить старое поле. Оно будет удалено вместе с подписью.Выделите подпись нового поля Жанр и в окне свойств введите записанные значения координат и размеров. Установите значение параметра Тип границы (стильрамки) как Сплошная.5. Проделайте то же самое и с самим полем. Новые подпись и поле должныточно встать на место старых. Закройте окно свойств.,1.Книжная база данным (пример)6. Выделите подпись и щелкните ее еще раз. Откроется режим редактированияподписи.
Замените слово «Жанр!» на «Жанр». Такая подпись выглядит болееестественно.Новый вариант формы показан на рис. 7.20. Мы видим, что ширина поля Жанрнедостаточна для показа данных полностью, но это не проблема: при необходимости ширину поля можно изменить, и мы уже знаем, как это сделать.ФормлКнигнstlАвторА. Азимовz SЖанрСтрана1 iaS ЙЯЩЯЕ; у. СШАзваниеКнигибранноеДетективКулинарияСерияГодВыиодэ1Э89 "eMWblИздательств "ПоэзияПриключенияАннотацияСпортв сборник кл.
ЕНЗЕН^^И ой и мировой Фантастики Айзека Азимове Еключены рассказыиз ей "Пчть 1- Эзотерика *"5 е гг.] и роман "Сами боги", написанный FIW ателем в начале 70-ягг. после 1 5- летнего перерыва Е питературпом творчестве™>: 03 * ГГ И H]lMfjrf эРис. 7.20. Теперь значение ноля Жанр можно выбран, т спискаПо аналогии можно было бы снабдить раскрывающимся списком и поляСтрана и Серия: здесь тоже важна унификация названий.7.6. Импорт данныхМы начали эту главу с рассмотрения таблицы, структура которой послужилапрототипом для создания нашей таблицы ТаблицаКниги. Может так оказаться,что нам потребуется перенести данные из той таблицы в нашу.
Если импортируемая таблица находится тоже в базе данных Access, то перемещение данных выполняется достаточно просто. Для этого надо:1. Открыть две программы Access с двумя базами данных.2. Перетащить импортируемую таблицу в окно другой базы данных на вкладкуТаблицы.3. Открыть импортируемую таблицу в конструкторе и изменить имена ее полей так,чтобы они совпадали с именами соответствующих полей основной таблнць .4. Создать и выполнить запрос на добавление данных (см. главу 5).178Глава?Кроме того. Access может импортировать данные из файлов самых разныхформатов. Окно диалога, позволяющее выполнить импортирование, показано нарис.
7.21. Оно похоже на окна открытия и сохранения файлов. Вызывается этоокно командой Файл •=> Внешние данные => Импорт. Пользователь долженопределить тип файла, который будет служить источником данных, и найти необходимый файл.Рис. 7.21. Окно для выбора импортируемого файлаИмпорт из баз данных, например dBASE или FoxPro, выполняется наиболеепросто. Это объясняется тем, что в файлах разных СУБД определены одинаковыепо смыслу элементы. Нельзя сказать, что поле базы данных FoxPro - это то же самое, что и поле таблицы Access, но их свойства схожи. Например, поля в тойи другой системе имеют имена, типы и длины.
Это позволяет выполнить преобразование данных автоматически, без участия пользователя. Импорт электронной таблицы Excel проходит не так гладко. Несмотря на то что рабочий листExcel разбит на столбцы, последние неэквивалентны по смыслу полям СУБД. Длястолбца электронной таблицы невозможно определить единый тип (как для полябазы данных) - он может хранить данные разного типа. Ширина столбца тожеможет изменяться. В результате программа «не знает», как преобразовать стол-Книжная база данных (пример)179бец рабочего листа Excel в поле таблицы Access, и «вынуждена» задавать пользователю дополнительные вопросы для настройки алгоритма приведения данных.Но даже если вы правильно ответите на все вопросы программы, нет гарантии,что данные будут импортированы без потерь и искажений.