Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Metodichka_access

.pdf
Скачиваний:
26
Добавлен:
04.06.2015
Размер:
4.69 Mб
Скачать

Рис. 19. Результат сортировки по убыванию рейтинга. 4. Теперь закройте форму Покупатели.

Учтите, что Microsoft Access не сохраняет действующий фильтр вместе с формой. Поэтому, когда вы в следующий раз откроете форму, записи не будут отсортированы или подвергнуты фильтрации. В следующей работе вы научитесь создавать и использовать запросы. Запрос может быть уподоблен фильтру, но он сохраняется при выходе из окна. Вы можете многократно использовать запрос для того, чтобы записи представлялись в соответствии с определенными условиями и в оговоренной последовательности.

4.Практическое задание.

1.Откройте форму Продавцы. Выполните переключение между Режимом формы и Режимом таблицы с помощью команд меню и кнопок панели инструментов.

2.В табличном представлении данных о продавцах скройте столбец Номер, сузьте столбцы

Город и Комиссионные.

3.Восстановите первоначальный вид таблицы Продавцы.

4.В режиме формы найдите запись о продавце, проживающем в городе Бронницы.

5.В режиме формы найдите запись о продавце Ольшевский, а при задании параметров поиска введите фамилию с маленькой буквы, выберите тип совпадения С любой частью поля,

отключите опцию Только в текущем поле и включите опцию С учетом регистра, как показано на рис. 20.

Рис. 20. Окно Поиска для выполнения задания № 5.

6.В режиме таблицы создайте фильтр для выборки записей о продавцах, проживающих в Липецке, используя Расширенный фильтр.

31

7.Удалите фильтр записей о продавцах.

8.Отсортируйте записи формы Продавцы в алфавитном порядке их имен.

9.Откройте форму Заказы и отсортируйте записи по убыванию стоимости заказа.

10.В режиме таблицы создайте фильтр для выборки записей о заказах, произведенных после 10.03.96 в Липецке, используя Расширенный фильтр. (Обратите внимание на добавленные программой разделители # появившиеся в строке Условие отбора после нажатия клавиши

Enter.)

11.Произведите выборку заказов выполненных продавцом с номером 1002, пользуясь кнопками фильтров панели инструментов.

Microsoft Access 97. Работа № 4

Установление связей между таблицами. Создание запросов.

Цель работы: Изучение типов связей и создание связей между таблицами. Изучение принципа создания запросов, определения критериев запроса и сортировки данных. Знакомство с назначением и использованием операторов в логических выражениях.

Поиск данных в одной таблице, фильтрация и сортировка, – мощные средства доступа к базе данных, но для большинства баз данных их недостаточно. Эти средства не позволяют выбирать информацию одновременно из нескольких таблиц, что часто бывает нужно. Например, в учебной базе данных может потребоваться найти список всех заказов, сделанных покупателями из Саратова. Или получить ответ на вопрос: "Сколько таким-то продавцом оформлено заказов?". Вопросы такого рода можно задавать базе данных с помощью запросов – средств, позволяющих извлекать информацию одновременно из нескольких таблиц. Поскольку запрос работает с несколькими таблицами, для получения корректных данных очень важно правильно задать связь между таблицами базы данных.

1.Установление связей между таблицами.

Вучебной базе данных связи между таблицами осуществляются через целочисленные ключевые поля Номер, хранящие уникальные номера записей каждой таблицы. Например, в каждой записи таблицы Заказы хранится номер покупателя, сделавшего заказ и номер продавца, оформившего этот заказ. Если вас интересует более подробная информация о покупателе, сделавшем определенный заказ, то вы должны, зная номер покупателя, обратиться к соответствующей записи таблицы Покупатели.

При заполнении таблиц данными вы ясно видели связи между таблицами и поэтому можете их использовать для поиска данных в таблице вручную, открывая связанные таблицы и отыскивая нужные данные. Чтобы MS Access смог автоматически извлечь нужную вам информацию, необходимо сообщить ему о существующих в базе данных связях между таблицами.

1.1. Типы связей между таблицами.

MS Access имеет дело с базами родственных данных, благодаря чему вы можете одновременно работать с данными из нескольких таблиц. Сформировав таблицы базы данных и установив ключевое поле для каждой таблицы, вы можете создать между таблицами взаимоотношения. Они

32

помогут MS Access связывать данные в каждом новом запросе, форме или отчете, включающем обе связанные таблицы.

ВMS Access вы можете создать два типа связей: отношение один-ко-многим или отношение один- к-одному. В первом случае, более распространенном, одна запись таблицы связана с множеством записей другой таблицы. Скажем, покупатель может сделать один или несколько заказов. Поэтому одной записи в таблице Покупатели, которая в данной связи будет первичной таблицей, может соответствовать несколько записей в таблице Заказы, которая называется связанной таблицей

(рис. 1.).

Вслучае менее распространенного отношения один-к-одному одной записи в первичной таблице соответствует только одна запись связанной таблицы. Подобный тип связи имеет смысл устанавливать в том случае, когда вы хотите, например, разделить данные на открытые и конфиденциальные. Например, есть база данных, содержащая сведения о сотрудниках фирмы. Фамилия, имя и должность сотрудников фирмы могут располагаться в одной таблице, а данные о зарплате – в другой. Между этими таблицами будет существовать отношение один-к-одному, поскольку каждой записи в одной из них соответствует единственная запись в другой.

Рис. 1. Связь типа один-ко-многим между двумя таблицами.

Связи между таблицами часто помогают убедиться в том, что таблицы лишены противоречивых сведений: например, что в таблице Заказы нет заказов, которым не соответствовал бы какой-либо покупатель из таблицы Покупатели.

1.2. Создание связи между двумя таблицами.

Если вы хотите создать связь между двумя таблицами, следует прежде убедиться, что в них есть совпадающие поля. Ключевое поле первичной таблицы соответствует аналогичному полю связанной таблицы, Последнее иногда называют внешним ключом.

Определите, какая из таблиц будет первичной, а какая - связанной. Если связанная та6лица не содержит поля данных, совпадающего с ключевым полем первичной таблицы, необходимо добавить его к связанной таблице – лишь в этом случае вы сможете создать связь между таблицами. Связанные поля должны содержать совпадающие данные и характеризоваться

33

одинаковым типом данных. Поля данных цифрового типа должны также иметь одинаковый формат.

После того, как связь установлена, вы не сможете изменять или удалять поля, на которых она основана, до тех пор, пока не удалите саму связь.

Создание и удаление связей производится в окне Схема данных. Чтобы вызвать это окно, выберите команду меню Сервис–Схема данных… (конечно, при этом должна быть открыта ваша база данных).

Появится окно Схема данных. Если вы открываете его не впервые, окно появится точно в таком виде, в каком вы сохранили его в последний раз. При первом установлении связи окно будет пустым, и сразу же появится диалог Добавление таблицы (рис. 2).

Рис. 2. Диалоговое окно Добавление таблицы. Теперь добавьте таблицы к окну Схема данных:

1.Если MS Access автоматически не выводит на экран диалог Добавление таблицы,

выберите команду меню Связи–Добавить таблицу.

2.В закладке Таблицы выделите строку Заказы, а затем щелкните на кнопке Добавить.

3.Таким же образом поступите с таблицами Покупатели и Продавцы. Названия каждой из таблиц со списками полей появятся в окне Схема данных.

4.Щелкните на кнопке Закрыть, чтобы закрыть диалог Добавление таблицы. Расположите таблицы в окне Схема данных так, как показано на рис. 3. Для перемещения таблицы нажмите левую кнопку мыши на названии таблицы и, не отпуская кнопку мыши, переместите таблицу в нужное место.

Рис. 3. Три таблицы в окне Схема данных.

34

Теперь установим связь между таблицами Заказы и Покупатели. Т.е. установим связь списка всех покупателей с заказами, которые они сделали, а в качестве сравнительного параметра используем уникальный номер покупателя.

Для этого проделайте следующее:

1.Находясь в окне Схема данных, перетащите поле Номер (удерживая на нем нажатой левую кнопку мыши) из списка полей таблицы Покупатели на поле Номер покупателя в списке Заказы. Тем самым вы перемещаете поле из первичной таблицы Покупатели в связанную таблицу 3аказы. Когда вы отпускаете клавишу мыши, появляется диалог Связи (рис. 4). Удостоверьтесь, что в списке находятся имена связываемых полей.

2.Щелкните на кнопке Создать. Теперь таблица Покупатели связана с таблицей Заказы. Вы видите линию, которая соединяет два связанных поля в этих таблицах (рис. 5). Связь будет сохраняться до тех пор, пока вы сами ее не удалите.

Рис. 4. Диалоговое окно Связи. Показана связь поля Номер таблицы Покупатели

и поля Номер покупателя таблицы Заказы.

Рис. 5. Связь между таблицами установлена.

Вучебных целях удалите только что созданную связь, чтобы затем восстановить ее заново:

1.Щелкните на линии между та6лицами Покупатели и Заказы. Линия станет толще (рис. 6).

35

Рис. 6. Щелчок на линии связи выделяет ее.

2.Нажмите клавишу Delete, чтобы удалить связь.

3.В появившемся окне с сообщением MS Access спрашивает подтверждение на удаление

связи из базы данных, щелкните на кнопке Да, подтверждая тем самым свое намерение удалить связь. MS Access убирает линию, соединяющую две таблицы. Больше они не связаны.

Задание. Создайте три связи:

1.связь таблиц Покупатели и Заказы;

2.связь таблиц Продавцы и Заказы;

3.связь таблиц Продавцы и Покупатели. Окно Схема данных в результате должно выглядеть так, как показано на рис. 7.

Рис. 7. Связи между таблицами учебной базы данных. Сохраните созданные связи:

1.Дважды щелкните на кнопке системного меню окна Схема данных, чтобы закрыть его. MS Access спросит вас, хотите ли вы сохранить изменения окна Схема данных. Заметим, что от вашего решения зависит лишь графическое представление окна, установленные же связи останутся в вашей базе данных.

2.Щелкните на кнопке Да, чтобы сохранить представление окна связей. Открыв в следующий раз окно Схема данных, вы увидите его таким, каким только что сохранили.

2.Создание запросов.

2.1.Что такое запрос?

Запрос определяет группу записей, с которыми вы хотите работать. Его можно сделать, например, в такой форме: "Предъявите мне имена покупателей, проживающих в таком-то городе, сделавших

36

заказы на такую-то сумму". Ответом будет таблица с временным набором данных, которая называется динамическим набором. Записи динамического набора могут включать поля из одной или нескольких таблиц (рис. 8).

Рис. 8. Динамический набор данных из разных таблиц

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

Работая с фильтром (в предыдущей лабораторной работе), вы брали информацию лишь из одной таблицы. Прибегая к запросу, можно востребовать информацию из нескольких областей вашей базы данных и, кроме того, сохранить запрос для повторного использования или создать на базе имеющегося запроса новый.

2.2. Запросы по образцу.

В окне Запрос на выборку (рис. 9) вы конструируете запрос с помощью средства, именуемого запросом по образцу (Query By Example, QBE-запрос). При этом вы формируете запросы, перетаскивая поля из верхней части окна Запрос на выборку в бланк запроса по образцу, и размещаете поля в бланке именно в той последовательности, в какой хотите видеть их в табличном представлении. Иными словами, вы используете бланк QBE, чтобы указать MS Access, какими вы хотели бы видеть результаты вашего запроса. Работа с бланком запроса напоминает создание фильтра, но при формировании запроса вы можете извлекать данные сразу из нескольких таблиц.

После выбора полей вы используете бланк QBE-запроса для дополнительной настройки запроса на выборку записей, которые вас интересуют (рис. 9).

37

Рис. 9. Настройка QBE-запроса.

Бланк запроса по образцу облегчает процедуру формирования запроса. Зачастую один вопрос влечет за собой другой, и запрос приходится модифицировать.

Например, вы начали с поиска всех покупателей из определенного города. Затем, внеся незначительные дополнения в условие отбора бланка QBE, вы сможете найти всех покупателей из данного региона, которые заказали товар на заданную сумму. Наконец, вам может понадобиться перечень покупателей из данного города, которые сделали заказ на определенную сумму в заданный период времени, например за декабрь минувшего года.

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

2.3. Создание и сохранение запроса.

Начнём с простого запроса, использующего одну таблицу. Он будет выполнять действия, которые выполнимы и с помощью фильтра, но в учебных целях этот запрос очень полезен. Предположим, вам нужны данные о покупателях, проживающих в Липецке и Саратове – их номера, имена и рейтинги. Эта информация хранится в таблице Покупатели.

Выполните следующие действия:

1.В окне База данных щелкните на ярлычке Запрос.

2.Щелкните на кнопке Создать.

3.В открывшемся диалоге Новый запрос выберите Конструктор и нажмите OK. Открывается окно Запрос на выборку и второе диалоговое окно Добавление таблицы, содержащее список таблиц (или запросов), которые будут использованы для формирования запроса (рис. 10).

38

Рис. 10. Окно Добавление таблицы

со списком таблиц базы данных для формирования запроса.

4.Дважды щелкните на строке с именем таблицы Покупатели, или выберите ее и нажмите кнопку Добавить, после чего щелкните на кнопке Закрыть.

В верхней части окна Запрос на выборку появится список полей таблицы Покупатели (рис. 11). В нем вы должны выбрать поля, которые будут включены в запрос.

Рис. 11. Список полей таблицы Покупатели. Теперь надо включить в запрос поля:

1.Перетащите имя поля Номер из списка полей в первую клетку строки Поле бланка запроса по образцу, либо щелкните на первой клетке и выберите в списке поле Номер и нажмите

2.Таким же образом перетащите в клетки бланка поля Имя, Город и Рейтинг. В итоге бланк запроса будет содержать четыре поля из пяти имеющихся в таблице Покупатели (рис.12). Чтобы просмотреть все клетки с именами полей, вам, возможно, придется переместиться по бланку вправо с помощью горизонтальной полосы прокрутки.

39

Рис. 12. Заполненный бланк запроса по образцу. Сохраните запрос и дайте ему имя:

1.Выберите команду меню Файл–Сохранить.

2.В появившемся диалоге Сохранение введите имя запроса Покупатели в Липецке и Саратове щелкните на кнопке OK. Новое имя запроса появится в строке заголовка окна запроса. Кроме того, MS Access добавит имя этого запроса в список ярлычка Запросы в окне База данных для дальнейшего использования.

3.Закройте окно запроса Покупатели в Липецке и Саратове и проверьте наличие его в базе данных на ярлычке Запросы.

2.4.Установка условия отбора нужных записей.

Если вы прямо сейчас откроете запрос (нажав кнопку Открыть в окне База данных), то увидите записи обо всех покупателях из таблицы Покупатели. Поскольку требуются сведения только о покупателях из Липецка и Саратова, необходимо поставить соответствующее условие отбора.

Для установки условия отбора вам может понадобиться выражение, по которому MS Access будет выбирать записи. Если, например, вам нужны поля с числовыми значениями, превышающими 5, то в строке Условие отбора надо ввести выражение >5. Применение выражений в запросе аналогично использованию фильтра, с которым вы познакомились в предыдущей работе.

Нам нужно получить список покупателей из Липецка и Саратова, поэтому условие отбора должно быть задано для столбца Город.

Для задания этого условия выполните следующие действия:

1.В окне База данных в списке запросов выделите запрос Покупатели в Липецке и Саратове и нажмите кнопку Конструктор. (Если же этот запрос уже открыт в табличном режиме, перейдите в режим Конструктора, для этого на панели инструментов нажмите кнопку Конструктор ).

2. В бланке запроса щелкните мышью в ячейку

строки Условие

отбора под полем Город.

 

3.Напечатайте Липецк и нажмите клавишу Enter. MS Access автоматически поставит кавычки по обеим сторонам введенного слова, указывая на его принадлежность к текстовому типу данных (рис. 13). Таким образом, вы задали критерий для поиска и отбора данных в таблице Покупатели.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]