Создание форм для заполнения и изменения базы данных
Работа с СУБД Access
Создание таблиц
1. Запустите программу Microsoft Access 2007.
2. В появившемся окне выберите «Новая база данных».
3. Справа появится раздел, предлагающий ввести название новой база данных.
4. Выберите иконку папки, в появившемся диалоговом окне укажите свой сетевой диск.
5. В строке «Имя файла» введите название базы данных – «Страны Европы».
На экране появится окно заготовки таблицы. Закройте эту таблицу без сохранения.
6. Перейдите в меню Создание.
7. Выберите команду Конструктор таблиц.
8. Откроется окно с тремя столбцами: Имя поля, Тип данных, Описание.
9. Создайте таблицу со следующими параметрами:
Имя поля | Тип данных |
КодСтраны | Счетчик (ключевой) |
Страна | Текстовый |
Столица | Текстовый |
Площадь | Числовой |
Население | Числовой |
КодРелигии | Числовой |
Деньги | Текстовый |
КодСтроя | Числовой |
10. После ввода полей и типов данных необходимо задать ключевое поле. Так как, значения в ключевом поле должны быть уникальными, т.е. не повторяющимися, то в этом качестве следует выбрать поле КодСтраны.
11. Для этого необходимо щелкнуть правой клавишей мыши по заданному полю и, в появившемся меню, выполнить команду ключевое поле или выбрать эту команду в открывшемся разделе Работа с таблицами/Конструктор.
12. Закройте окно конструктора и, при запросе о сохранении задайте имя Страны Европы.
13. Аналогичным образом создайте еще 2 таблицы:
Государственный строй
Название поля | Тип данных |
КодСтроя | Счетчик |
ГосСтрой | Текстовый |
Основная религия:
Название поля | Тип данных |
КодРелигии | Счетчик |
Религия | Текстовый |
Создание связей между таблицами
Для того чтобы из набора таблиц получилась база данных, необходимо таблицы связать между собой.
1. Перейдите в раздел Работа с базами данных.
2. Выберите команду Схема данных.
3. В диалоговом окне добавления таблиц выберите и добавьте в схему все три таблицы. Закройте диалоговое окно добавления таблиц.
4. Выберите мышкой КодРелигии в таблице Религия и перетащите на поле КодРелигии таблицы СтраныЕвропы.
В появившемся диалоговом окне Изменение связей необходимо установить нужную связь: флажок напротив опции Обеспечение целостности данных означает, что перед тем как занести данные в подчиненную таблицу, СУБД будет проверять их на соответствие главной. (Таблица СтраныЕвропы является подчиненной для таблиц Религия и Строй). Флажок напротив опции Каскадное обновление связанных полей означает, что изменения в главной таблице автоматически будут влиять на подчиненную. Флажок напротив опции Каскадное удаление связанных полей означает, что поля удаленные в главной таблице будут удалены и в подчиненной.
5. Установите первые два флажка.
6. Аналогичную операцию проделайте с таблицами СтраныЕвропы и Строй(если связь не устанавливается, еще раз проверьте типы данных связываемых полей).
7. В результате должна получиться следующая схема данных:
8. Закройте схему с сохранением.
База данных готова. Далее необходимо ее заполнить конкретными данными. Заполнять базу данных можно в таблице, но это не очень удобно, особенно для сводной таблицы, где нужно помнить наизусть код религии и код строя. Поэтому как правило для заполнения базы данных и для удобной работы и просмотра данных используют формы.
Создание форм для заполнения и изменения базы данных
Формы можно создавать как в режиме конструктора (мы так делали таблицы), так и с помощью мастера с последующей доработкой созданной формы в режиме конструктора.
Сначала создадим формы для справочных (так называемых родительских) таблиц:
- Перейдите в раздел Создание. Выберите область Формы, команду Другие формы/Мастер форм.
- В открывшемся диалоговом окне Создание форм из раскрывающегося списка выберите таблицу ГосСтрой.
- В левом окне появится список полей, существующих в выбранной таблице.
- Перенесите все поля в правое окно, нажав на кнопку с двойной стрелкой между ними.
- В результате поля КодСтроя и ГосСтрой появятся в правом окне и исчезнут в левом. Нажмите кнопку Далее.
- В следующем окне выберите внешний вид формы, поставив переключатель в строку ленточный. Выбор внешнего вида формы определяется, в основном, количеством полей, которые необходимо разместить на форме. Т.к. в нашем случае полей мало (всего два), то вид ленточный наиболее наглядный для работы с данными.
- В следующем окне выберите стиль оформления формы по своему вкусу.
- Далее задайте имя формы. Оно, как правило, будет соответствовать названию таблицы, на основе которой построена форма.
- Нажатие кнопки Готово приведет к открытию формы в режиме просмотра и ввода данных.
Заполните форму следующими данными, приведенными в таблице:
Государственный строй
КодСтроя | ГосСтрой |
Республика | |
Княжество | |
Монархия | |
Герцогство |
- Обратите внимание на то, что поле КодСтроя будет заполняться автоматически и новая строка для ввода данных будет появляться сама, как только будет заполняться поле ГосСтрой.
- Аналогичным образом создайте форму на основе таблицы ОсновнаяРелигия.
- Заполните созданную форму данными, приведенными в таблице:
Основная религия:
Код религии | Основная религия |
Атеизм | |
Христианство католики | |
Христианство православные | |
Христианство протестанты |
- После заполнения форм откройте одноименные таблицы и проверьте, сохранились ли там введенные в форме данные.
- Осталось создать форму для заполнения сводной таблицы СтраныЕвропы. Выберите раздел Создание/Формы/Другие формы/Мастер форм.
- В открывшемся диалоговом окне выберите таблицу СтраныЕвропы, на основе которой будет строится форма.
- Перенесите все поля, доступные в таблице, на форму.
- Выберите внешний вид формы, поставив переключатель в строку в один столбец.
- Далее выполните все действия, аналогично описанным выше при создании предыдущих форм.
- В результате получится аналогичная форма, но она не удобна для заполнения, т.к. нужно помнить код религии и код государственного строя наизусть для корректного заполнения базы данных. Поэтому данную форму необходимо подкорректировать в режиме конструктора.
- Перейдите из режима просмотра формы в режим конструктора, выбрав в разделе Главная в области Режимы команду Конструктор из раскрывающегося списка.
- Форма примет следующий вид:
Здесь есть три области: область Заголовка формы, Область данных и область Примечания формы. Область Заголовка формы предназначена для расположения информационного текста, например, названия самой формы, или для размещения дополнительных элементов, облегчающих работу с формой, например, дополнительных кнопок и т.д. Область данных предназначена для размещения полей, в которых в режиме просмотра формы будут располагаться непосредственно данные из таблицы (области с названиями полей таблицы справа на белом фоне), и поясняющие надписи к полям (надписи с названиями полей слева на прозрачном фоне с сеткой).
- Выделите поле КодРелигии, щелкнув левой кнопкой мыши по соответствующему полю справа, и удалите его, нажав кнопку Delete на клавиатуре.
- Также удалите поле КодСтроя.
- Вместо них нужно разместить поля со списком, в которых будут отображаться названия строя и религии, при выборе которых в таблицу СтраныЕвропы в соответствующие поля будут заноситься коды выбранного строя и религии. Для этого нужно проделать следующие действия:
- Перейдите в раздел Инструменты конструктора форм/Конструктор.
- В области Элементы управления выберите Поле со списком.
- Курсор мыши примет вид черного плюсика. С его помощью нарисуйте будущее поле в области данных формы.
- В открывшемся диалоговом окне мастера Создание полей со списком переключатель должен стоять в строке Объект «поле со списком» будет использовать значения из таблицы или запроса.
- Далее, в следующем окне мастера выберите таблицу, из которой будут браться данные для списка: ГосСтрой.
- Далее перенесите оба поля из списка Доступных полей в список Выбранных полей, нажав двойную стрелку. Нам нужны обязательно как поле со списком возможных государственных устройств, так и их коды, т.к. КодСтроя является ключевым полем и используется для связи таблиц.
- Далее можно выбрать порядок сортировки данных в списке. Для удобства работы выберите сортировку по полю ГосСтрой. В этом случае в раскрывающемся поле со списком формы государственного строя будут расположены в алфавитном порядке.
- Далее убедитесь, что флажок Скрыть ключевой столбец установлен, т.к. в нашем списке нам удобно видеть только само название государственного строя, без кодов (чтобы коды не мешали зрительно).
- Далее очень важно правильно определить действие, которое будет выполняться при выборе значения из объекта «поле со списком». В нашем случае обязательно нужно Сохранить в поле: и выбрать КодСтроя. Таким образом, при заполнении формы выбрав из списка конкретный государственный строй вы работаете с понятными вам словами, а СУБД сама запишет в таблицу СтраныЕвропы в поле КодСтроя именно код того строя, который вы выбрали из таблицы ГосСтрой.
- Далее на последнем шаге мастера необходимо задать надпись, поясняющую, что будет находиться в данном поле со списком. Введите текст Гос строй. Готово.
- Выровняйте надпись и поле, если это необходимо.
- Аналогично создайте поле со списком для ввода религии.
- Перейдите в режим формы и заполните форму данными.
- Заполнив первую запись, перейдите к следующей, нажав кнопку перехода внизу формы.
Страны Европы:
Страна | Площадь (кв.км) | Столица | Население | Основная религия | Денежная единица | Гос. строй |
Австрия | 83 871 | Вена | 8 404 252 | Христианство католики | Шиллинг | Республика |
Албания | 28 748 | Тиpана | 3 187 009 | Атеизм | Лек | Республика |
Андоppа | Андоpра-ла-Велья | 91 023 | Христианство католики | Фpанк | Княжество | |
Бельгия | 30 528 | Бpюссель | 10 431 477 | Христианство католики | Фpанк | Монархия |
Болгаpия | 110 994 | София | 7 364 570 | Христианство православные | Лев | Республика |
Дания | 43 094 | Копенгаген | 5 564 219 | Христианство протестанты | Кpона | Монархия |
Финляндия | 338 424 | Хельсинки | 5 396 292 | Христианство протестанты | Маpки | Республика |
Фpанция | 547 030 | Паpиж | 62 379 432 | Христианство католики | Фpанк | Республика |
Гpеция | 131 957 | Афины | 11 306 183 | Христианство православные | Дpахма | Республика |
Иpландия | 70 273 | Дублин | 4 581 269 | Христианство католики | Фунт | Республика |
Исландия | 103 125 | Pейкьявик | 317 630 | Христианство протестанты | Кpона | Республика |
Италия | 301 230 | Pим | 60 605 053 | Христианство католики | Лиpа | Республика |
Лихтенштейн | Вадуц | 35 870 | Христианство католики | Фpанк | Монархия | |
Люксембуpг | 2 586 | Люксембуpг | 502 207 | Христианство католики | Фpанк | Герцогство |
Мальта | Валлетта | 402 000 | Христианство католики | Фунт | Республика | |
Монако | Монако | 32 965 | Христианство католики | Фpанк | Княжество | |
Нидеpланды | 41 526 | Амстеpдам | 16 357 373 | Христианство протестанты | Флоpин | Монархия |
Ноpвегия | 385 186 | Осло | 5 002 000 | Христианство протестанты | Кpона | Монархия |
Польша | 312 679 | Ваpшава | 38 192 000 | Христианство католики | Злотый | Республика |
Поpтугалия | 92 391 | Лиссабон | 10 707 924 | Христианство католики | Эскудо | Республика |
Pумыния | 238 391 | Бухаpест | 21 466 174 | Христианство православные | Леи | Республика |
Сан-Маpино | Сан-Маpино | 32 075 | Христианство католики | Лиpа | Республика | |
Швейцаpия | 41 284 | Беpн | 7 700 200 | Христианство католики | Фpанк | Республика |
Испания | 504 782 | Мадpид | 46 162 024 | Христианство католики | Песета | Монархия |
Великобpита-ния | 243 809 | Лондон | 58 789 194 | Христианство православные | Фунт | Монархия |
Швеция | 449 964 | Стокгольм | 9 354 426 | Христианство протестанты | Кpона | Монархия |
Чехия | 78 866 | Пpага | 10 532 770 | Христианство католики | Кpона | Республика |
Венгpия | 93 030 | Будапешт | 10 019 000 | Христианство католики | Фоpинт | Республика |
Геpмания | 357 021 | Берлин | 81 757 600 | Христианство протестанты | Маpка | Республика |
Создание запросов
Запросы предназначены для выборки нужных данных из разных таблиц, проведения сортировки, отбора данных согласно заданному условию, проведения расчетов, группирования данных, анализ данных посредством сведения их по различным параметрам и т.д. Существует целый ряд запросов, позволяющих выполнить эти задачи, в частности, запрос на выборку, перекрестный запрос, запрос с параметром и т.д. Начнем с самого простого запроса – запроса на выборку.
- Перейдите в раздел Создание/Другиевыберите команду Конструктор Запросов.
- В окне конструктора запросов автоматически появится диалоговое окно добавления таблиц. Если это окно не появилось, его можно вызвать командой Отобразить таблицу области Настройка запроса.
- Добавьте в запрос все три таблицы.
- Убедитесь, что между добавленными таблицами автоматически установилась связь.
Теперь необходимо выбрать поля для запроса. Из таблицы СтраныЕвропывозьмем поля: Страна, Столица, Площадь, Население, Деньги. Из таблицы ГосСтрой – поле Строй, а из таблицы Религия – поле Религия. Это вызвано тем, что последние два поля в таблице Страны Европы хранятся в кодовом виде, а в запросе мы можем позволить себе удобный просмотр.
- Первое поле добавьте, произведя двойной щелчок по нему в таблице.
- Второе перетащите, используя мышь (есть и третий способ, но он менее удобен).
- Остальные поля добавьте любым способом.
- Закройте запрос, при закрытии задав ему имя Основной.
- Откройте запрос и просмотрите какие данные он выводит.
- Закройте запрос.
Теперь наша задача настроить запрос на различные условия выборки, т.е. построить так называемый Запрос на выборку. Обычно для этого используют один запрос, меняя эти условия. Но для проверки выполненной работы, мы создадим несколько запросов (на каждое условие по запросу). Чтобы не создавать заново почти одинаковые запросы удобно несколько раз скопировать запрос Основной через буфер обмена.
- Выделите запрос Основной (он должен быть закрыть).
- Скопируйте его в буфер обмена.
- Вставьте его в базу 6 раз, задавая имена созвучные следующим ниже заданиям.
Православные страны: Для того чтобы вывести в запросе только страны с определенной религией необходимо в поле запроса Религия в строку Условие отбора ввести эту религию. Аналогично для любого поля.
- Создайте запрос, выводящий страны с православием. Помните, что условие отбора должно содержать название отбираемого параметра точно в том виде, что хранится в таблице, поэтому во избежание ошибок при вводе текста с клавиатуры, скопируйте нужный параметр из исходной таблицы или из самого запроса.
Страны не православные: Для того чтобы запретить странам с определенной религией выводиться в запросе необходимо в данном поле и уже указанной строке ввести заданную религию, но перед ней поставить оператор Not.
- Создайте запрос, выводящий страны с любой религией кроме Православия.
Страны с большим населением: Для того чтобы вывести страны с населением больше 1000000, достаточно в поле Население в строку Условие отбора ввести >1000000. Кстати для условий предусмотрено две строки, поэтому для одного поля можно вводить два условия.
- Создайте запрос, выводящий страны с населением более 10000000 и (And) менее 200000000
- Создайте запрос, выводящий страны с населением более 3000000 и площадью менее 30000 кв. км.
Можно сделать так, чтобы перед выводом запроса программа просила ввести данные, строки с которыми будут выведены. Это так называемый Запрос с параметром. Для этого в нужном поле, в строке Условие отбора надо ввести [Введите данные для отбора]. Выражение в скобках может быть любым, но именно оно появится в диалоговом окне.
- Создайте запрос, спрашивающий: страны с какой денежной единицей вывести на экран?
Для того чтобы находить в поле не конкретное значение, а только его фрагмент используют оператор Like. Его ставят впереди заданного фрагмента, а до или после фрагмента можно использовать символы маски (*).
- Создайте запрос, выводящий страны с денежной единицей, содержащей букву к.
Подведение итогов
Запросы можно использовать и для объединения некоторых данных с проведением расчета по заданному параметру. Это называется группировкой данных.
- Создайте новый запрос конструктором. Добавьте таблицы: ОсновнаяРелигия и СтраныЕвропы.
- Выберите из таблицы ОсновнаяРелигия – поле Религия, из таблицы СтраныЕвропы – поле Население.
- В меню Работа с запросами/Конструктор выберите команду Итоги, обозначенную знаком сигмы ∑ (см. рис.).
- В нижней части окна запроса появится строка Групповая операция: между строкой Имя таблицы и Сортировка.
- В поле Религия в строке Групповая операция выберите из раскрывающегося списка команду Группировка.
- В поле Население в этой же строке выберите операцию суммирования Sum.
- Посмотрите результат выполнения данного запроса.
Данный запрос группирует все страны по видам основной религии и суммирует общее количество населения всех стран в конкретной религией.
Вычисляемые поля
В результате выполнения запроса можно получить не только те данные, которые хранятся в таблицах БД, но и результаты вычислений. Для этого в строке Поле бланка запроса надо указать не имя поля из какой-либо таблицы, а формулу расчета нужного вам значения с использованием полей таблиц, встроенных функций и операторов. Для создания формулы используйте Построитель выражений (в контекстном меню команда Построить…).
- Создайте запрос, выводящий страны с плотностью населения в них. В запросе должно быть два поля: Страны из таблицы СтраныЕвропы и еще одно поле, созданное самостоятельно. Для этого в соседнем пустом поле вашего запроса, в строке Поле задайте название поля Плотность_населения:. Обязательно проверьте, чтобы после названия стоял знак двоеточие (:).
- Вызовите построитель выражений из раздела Работа с запросами/Конструктор область Настройка запроса команда Построитель, или команда Построить из контекстного меню.
- Откроется диалоговое окно построителя выражения, в основном окне которого будет отображено название поля, которое вы ввели в строке Поле.
- В левом нижнем окне выберите последовательно Таблицы –СтраныЕвропы.
- В среднем окне появится список полей выбранной таблицы.
- Щелкните дважды левой кнопкой мыши на поле Население, оно появится в верхнем окне построителя.
- Выберите операцию деления в строке кнопок, расположенной ниже окна ввода выражения, или с клавиатуры.
- Выберите двойным щелчком поле Площадь.
- В окне построителя выделите слово «Выражение» и удалите его.
- Проверьте результаты расчетов. Сохраните запрос.
Запрос на обновление
Помимо функций выборки данных, расчетов и подведения итогов, можно строить запросы на автоматическое обновление данных в таблице. Для наглядного применения такого вида запросов необходимо несколько модифицировать исходную таблицу СтраныЕвропы.