- •Система управления базами данных access
- •2002 Содержание
- •Общие сведения Основные Термины
- •Понятие реляционной базы данных
- •Примеры выделения ключевых полей
- •Типы связей между таблицами.
- •Порядок работы при создании базы данных
- •Создание новой бд
- •Создание таблиц
- •Загрузка таблицы данными
- •Работа с макетом таблицы
- •Фильтрация данных
- •Запросы
- •Создание форм на основе одной таблицы или запроса
- •Выделение элементов формы
- •Создание многотабличных форм
- •Элементы управления и их свойства
- •Свойства формы
- •Расположение элементов управления на форме
- •Сортировка и группировка даннных
- •Создание отчета при помощи мастера
- •Создание отчета накладная
- •Синхронизация данных в форме и отчете
- •Макросы
- •Ссылки на объекты бд
- •Создание макросов
- •Краткая характеристика макрокоманд
- •Создание простого макроса , позволяющего выбирать из списка клиента для последующего создания отчета
- •Пример создания макроса архивации старых данных.
- •Пример макроса, позволяющего изменять кол-во компьютеров на складе, при заполнении формы заказ.
- •Групповые макросы
- •Создание группового макроса , позволяющего изменять количество товара на складе при заполнении формы и изменять свойство видимости кнопок (visible)
- •Организация поиска при помощи макроса
- •Условные макросы
- •Создание формы ввода пароля
- •Условный макрос Скидка
- •Реализация циклов в макросах
- •Создание Приложения Пользователя
- •Создание кнопочной формы при помощи мастера
- •Создание кнопочной формы при помощи конструктора форм
- •Создание панели Инструментов пользователя.
- •Создание строки меню пользователя.
- •Параметры запуска приложения
- •. Сжатие бд
- •Восстановление Повреждений.
- •Список литературы
Запросы
Запросы позволяют выбирать необходимые данные из одной или нескольких взаимосвязанных таблиц , производить необходимые вычисления и получать результат в виде таблицы . При помощи запросов можно производить обновление записей в таблицах , добавление и удаление записей , группировать записи с одинаковыми значениями , выполнять над ними групповые операции, выполнять различные вычисления. Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи , не прибегая к программированию .
Запрос может быть сформулирован в среде MSAccessна двух языках
QBE(Query By Example) - язык запросов по примеру (образцу), предназначенный для пользователей - не программистов.
SQL(Structured Query Language) - структурированный язык запросов, используемый пользователями - программистами в программах приложений наVBA (Visual Basic for Application). Язык SQL имеет большие возможности по сравнению с языком запросов QBE. Это означает, что все, что можно сформулировать на языке QBE, можно сформулировать и на SQL, но не наоборот. Например, язык QBE не позволяет создавать и редактировать структуру таблицы и пр
В процессе создания запроса на одном языке запросов ACCESS автоматически формулирует запрос и на другом (если это возможно). В результате выполнения большинства запросов создаются временные, динамические таблицы, которые существуют до закрытия запроса.
В иды Запросов:
Запрос на Выборку --выбирает данные из взаимосвязанных таблиц и других запросов. Результатом является таблица , которая существует до закрытия запроса.
Запрос на Создание Таблицы -- основан на запросе на выборку , но результат сохраняется в таблице
Запросы на Обновление , Добавление , Удаление --Запросы действия , в результате которых изменяются данные в таблице.
Перекрестный Запрос– предназначен для группирования данных и представления их в компактном виде, удобен для анализа.
Разработка Запросапроизводится врежиме Конструктора. Для создания запроса выделите объект Запросы, нажмите кнопкуСоздать и выберите режимКонструктора.Укажите используемые в запросе таблицу или таблицы (как при работе со схемой данных).
Верхнее окно Запроса в режиме Конструктора отображает схему данных(можно при необходимости изменять связи между таблицами) , а нижнееБланк Запроса По образцу. Каждый столбец бланка относится к одному полю , с которым нужно работать в Запросе. Поля могут использоваться для включения их в результат выполнения Запроса , для задания сортировки, а также для создания условий отбора записей
При заполнении бланка запросов по образцу необходимо:
·В строку Поле включить имена полей , используемых в Запросе.
Двойной щелчок мыши на имени поля в таблице, вынесенной в верхнюю часть бланка. При этом имя таблицы автоматически заносится в соответствующую строку внизу бланка
выделить имя поля в таблице в верхней части бланка, перетащить мышью в нужный столбец бланка в строку Поле.
выбрать нужное поле из списка в строке Полевнизу бланка запроса
Для включения всех полей таблицы можно перетащить символ *.
·В строке Вывод на экранотметить поля , которые должны быть включены в результирующую таблицу (Можно для поля задать условие отбора , но значение поля не отображать на экране)
·В строке Условие отбора задатьусловия отбора записей (например >100 ,Иванов , Like С*, between 10 and 20)
Выполняя запрос, получаем ответ в виде так называемого динамического набора данных, который не сохраняется при сохранении запроса, однако он может быть использован как источник данных (наравне с таблицами) для построения другого запроса. Динамический набор данных можно сохранить, например в таблице, если выполнить запрос на создание таблицы или запрос на добавление данных, а также использовать в формах и отчетах
Для просмотра результата запроса необходимо воспользоваться кнопкой Представление Таблицына панели или пунктом менюВид – Режим Таблицы.
Для просмотра запроса в режиме SQLнеобходимо воспользоваться пунктом менюВид – Режим SQL
Примеры условий отбора:
>10 |
больше 10 |
< >2 |
не равно 2 |
Between 5 And 10 |
больше 5, но меньше 10 |
Date( ) |
за текущую дату |
< Date -30 |
месяц назад |
Between Date( ) And Date( ) - 90 |
в течении последних 90 дней |
Between Date( ) And DateAdd(‘’м’’;-3;Date( )) |
в течении последних трех месяцев |
Between 01.01.97 And 31.12.97 |
За 1997 год |
Иванов (‘‘Иванов’’) |
только для Иванова |
И* (Like ‘’И*’’) |
все клиенты фамилия , которых начинается на И |
Like “[!ъ]*” |
Строка не должна начинаться со знака ъ |
[Введите Фамилию Сотрудника] |
Просит задать фамилию |
Between [Введите Дату1] And [ Введите Дату2] |
возможность самому задавать временной интервал |
Between 01.01.00 & [Год] And 31.12.00 & [Год] |
За введенный с клавиатуры год |
In(1;10;50;100) |
1 или 10 или 50 или 100 |
In(“Минск”; “Киев”) |
Минск или Киев |
Null. |
(пусто)- не введено никакого значения |
Not IsNull |
(не пусто), т. е. значение введено |
Условие отбора может быть записано в одном столбце бланка или в нескольких. В последнем случае запрос будет булевским с использованием операции And. Чтобы построить булевский запрос с использованием операцииOr, необходимо воспользоваться строкойилибланка запроса. По такому же принципу можно создать булевский запрос с использованием обеих операций
Запросы на выборку позволяют выбирать данные из одной или нескольких взаимосвязанных таблиц в соответствии с указанными условиями отбора. На основе запроса на выборку строятся все остальные запросы.
В запросах, в отличии от таблиц над полями могут производится вычисления. При этом могут использоваться как арифметические выражения так и встроенные функцииMSAccess . Вычисляемое поле , включенное в запрос позволяет получить новое поле с результатами вычислений только в таблице запроса и не создает полей в таблицах БД.
Примеры вычисляемых полей
Стоимость: [Товары]![Цена]*[Продажи]![Количество]
Клиенты: [Клиенты]![Фамилия] & ‘‘ ’’&[ Клиенты]![Имя]& ‘‘ ’’& [Клиенты]![Отчество]
Сформировать выражение можно при помощи Построителя выражений ,который запускается из контекстного меню , связанного со строкой Условие отбора на бланке или при помощи соответствующей кнопкена панели инструментов. При составлении выражений имена полей заключаются в квадратные скобки , символьные константы - в кавычки , имена объектов БД отделяются от полей "!"
Открыв окно построителя, в его поле ввода можно писать выражения с помощью клавиатуры, а можно условие формировать с помощью кнопок построителя, выбирая операнды из списков.
Результат выполнения запроса
Параметрические Запросы.Конкретное значение поля в условии отбора может вводится непосредственно в бланк Запроса или задаваться пользователем при выполнении Запросы в диалоговом окне. Например используя таблицу КЛИЕНТЫ можно создать параметрический запрос , позволяющий просматривать только клиентов то из одного города , то из другого города. Для этого в строку Условие отбора ввести [Назовите город] для поля Город. Результат можно просмотреть в режиме таблицы .
В данном примере введено условие , позволяющее пользователю самому вводить фамилию клиента и дату заказа. При выполнении запроса сначала выполняется условие записанное в левом столбце ([Введите дату]).
Итоговые запросыпозволяют выполнять вычисления над группами записей. Группирование данных позволяет получать статистическую, итоговую и др. информацию по отдельным группам данных. Группировать данные можно по одному или нескольким полям. Пример выполнения итогового запроса, с группировкой по клиенту
Тот же запрос в режиме Конструктора
Для создания запроса необходимо
Выбрать все таблицы, так как они участвуют в создании вычисляемого поля.
Из таблицы Товары включить в запрос поле Название
Создать вычисляемое поле Стоимость
Для отображения строки Групповая операция воспользоваться командой Вид - Групповые операции
Для поля Стоимостьвыбрать групповую операциюSum, а для поля Наименование —.Группировка
Внимание! Группировка- означает, что данное поле является полем группирования (устанавливается по умолчанию)
Sum- суммирование всех значений поля по группе данных
Avg- среднее значение поля по группе
MinилиMax- минимальное или максимальное значение поля в группе
Count- количество записей, входящих в группу
StDev-среднеквадратическое отклонение
Var- дисперсия
FirstилиLast- первое или последнее значение поля в группе
Выражение- позволяет ввести выражение вместо имени поля в строке Поле бланка запроса
Условие- показывает, что это поле используется только для задания условия отбора данных в запросе . Это поле не отображается в динамическом наборе данных.
Если группировка производится по нескольким полям , то слово Группировка должно быть в каждом из них
Совет!Для подсчета общей стоимости используется групповая операцияSum, а для подсчета количества заказов –Count.
Перекрестные Запросыпредназначены для группирования данных и представления их в компактном виде. Позволяют представить большой объем данных в виде удобном для восприятия, анализа, сравнения. Могут использоваться в качестве базового при создании отчета.
Внимание!Перекрестный запрос может содержатьнесколько полей с заголовками строк, но толькоодно поле с заголовками столбцовили значение
Пример запрос, показывающего для каждого товара в каком объеме, каким клиентом и на какую сумму он был закуплен с разбивкой по товарам
Тот же запрос в режиме Конструктора
Создание перекрестного запроса
создать запрос на выборкуданных на основе таблицыТоварыиКлиенты, Продажи, отобразив в динамическом наборе поля:Фамилия и Название
Создать два вычисляемых поляСтоимость.
преобразовать запрос на выборку в перекрестный запрос при помощи пункта меню Запрос - Перекрестный или кнопки Тип запроса на панели Инструментов
выбрать Sum в строкеГрупповая операциядля вычисляемых полей
заполнить строку перекрестная таблица.
Для отображения в поле Стоимость символа денежной единицы
Выделите поле Стоимость
Воспользуйтесь командой Свойствоиз Контекстного меню
В стоке формат установите Денежный
Для сохранения результата запроса используется Запрос На Создание Таблицы. Он основан на Запросе на выборку , но результат сохраняется в таблице. Запрос на выборку можно преобразовать в запрос на создание таблицы при помощи пункта менюЗапрос—Создание Таблицы.
Запросы на изменение данных
Создание запроса на добавлениенескольких записей из другой таблицы:
создать запрос на выборку данных из таблицы-источника (откуда)
преобразовать запрос на выборку в запрос на добавление данных при помощи пункта меню Запрос - Добавление
задать или выбрать из списка имя таблицы-приемника, в которую должны быть добавлены записи и указать ее местоположение (в текущей или другой БД).
в строке Добавлениебланка запроса выбрать из списка соответствующие имена полей таблицы-приемника, в которые будут добавлены значения (могут быть установлены автоматически
Заказы до 01.01.97 из таблицы Продажидобавляются в таблицуСтарые Продажи
Создание запроса: на удаление
создать запрос на выборку данных (т. е. указать записи, которые следует удалить из таблицы). При этом можно в строку Полебланка запроса перенести все поля (используя символ * ), а можно вынести часть полей таблицы.
преобразовать запрос на выборку в запрос на удаление записей при помощи пункта меню Запрос - Удаление
На бланке запроса появится строка Удаление, которая будет заполнена автоматически. Если в строкуПолебыли вынесены все поля (с помощью символа *), то для этого столбца в строкеУдалениебудет указано словоИз, а в столбце, для которого было написано условие отбора, в строкеУдалениебудет указано словоУсловие.
Внимание!Если удаление выполняется из дочерней таблицы, то после исполнения запроса из таблицы будут удалены все записи, удовлетворяющие заданному условия. Если удаление указано из родительской таблицы и при этом ранее было установленоКаскадное удаление связанных записей, то удаление будет произведено не только из родительской, но и из всех дочерних таблиц, которые имеют записи, связанные с удаляемыми записями родительской таблицы.
Создание запроса: на обновление (корректировку) данных
создайте запрос на выборку данных
преобразуйте запрос на выборку в запрос на обновление данных при помощи пункта меню Запрос - Обновление
На бланке запроса появится строка Обновление, в которой необходимо указать новое значение обновляемого поля.
Формы
Формы позволяют осуществлять первоначальную загрузку таблицы БД , выполнять ихпросмотр, а также производить корректировку данных) . При наличии схемы данных состоящей из взаимосвязанных таблиц формы позволяют выполнятькорректный ввод взаимосвязанных данных .
Прежде чем вводить данные в форму необходимо ее сконструировать в соответствии с требованиями пользователя. При этом определяется : из каких таблиц нужно отображать данные (другими словами, какие таблицы будут являться источниками данных для формы), какие поля должны быть представлены в форме, нужны ли вычисляемые поля, какие графические элементы будут использоваться (линии, рисунки, поясняющий текст) и пр
Форма может быть
однотабличной- источник данных одна таблица или запрос
многотабличной,построенная на основе нескольких взаимосвязанных таблиц
без источника данных(чаще всего используется для реализации пользовательского кнопочного меню).
Для создания формынеобходимо выделить объект Формы и нажать кнопку Создать , выбрать один из режимов создания форм и указать таблицу или запрос на основе которых будет создаваться форма .
Способы создания форм
Конструкторпозволяет создавать форму вручную
Внимание! Форму без источника данных можно создавать только в этом режиме
Автоформа- автоматический и самый быстрый способ создания толькооднотабличнойформы. При этом в форме отобразятся данные из всех полей таблицы - источника данных.
в столбец: на одной странице располагаются данные только из одной текущей записи. Такая форма называется простой.
ленточная: для каждой записи отводится отдельная строка формы и представлялся обзор нескольких записей.
табличная: данные представляются в виде таблицы, оформленной в определенном мастером стиле. По внешнему виду не отличается от обычной таблицы.
Внимание!Табличная и ленточная формы легко преобразуются друг в друга
Мастерформпозволяет создать как однотабличную, так и многотабличную формы. В отличие от автоформ мастер позволяет отобрать поля, данные из которых пользователь хочет иметь в форме. Кроме того, можно выбрать стиль формы и некоторые другие параметры.
Диаграмма: запускается мастер для построения диаграмм.
Своднаятаблица: создается форма специального вида, отображающая некоторую статистическую информацию.
Структура формы
Для удобства расположения элементов управления
на форме отображается сеткаилинейка
Структуру готовой формы можно просмотреть в режиме Конструктора.