Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных освоение работы в MS Access 2007. Электронное пособие
.pdf
CREATE TABLE <имя таблицы> (<имя столбца1> тип столбца NOT
NULL,<имя столбца2> тип столбца,….CONSTRAINT <имя ограничения>
PRIMARY KEY(имя столбца1));
3. Создайте таблицу publishers со своим именем индекса по первичному
ключу. Занесите в таблицу две строки, не нарушая установленных ограничений
целостности. Попробуйте занести строки, содержимое которых противоречит
определенным ограничениям. Проверьте, что занесенные строки действительно
содержатся в таблице.
4. Если необходимо создать индекс по какому-либо другому полю (а не
только по первичному ключу) таблицы, используется следующая инструкция:
CREATE UNIQUE INDEX <имя индекса>
ON <имя таблицы> (<имя столбца1>, < имя столбца2>, …);
5. Создайте индекс по таблице authors для упорядочивания записей в
алфавитном порядке.
6. Для удаления индекса используется следующая инструкция:
DROP INDEX <имя таблицы> . <имя индекса>;
Задание №4. Создание реляционных связей между таблицами
Наличие реляционной связи между таблицами подразумевает выбор
значения поля одной таблицы (в этом случае называемой дочерней) строго из
существующих значений какого-либо поля другой таблицы (в этом случае
называемой родительской).
1. Создайте таблицу typetitles. Она будет являться родительской по
отношению к таблице titles, поскольку в таблице titles поле typetitles надо
выбирать из typetitles. Для создания реляционной связи используется
следующая инструкция:
CREATE TABLE <имя дочерней таблицы>(<имя столбца1> тип
столбца NOT NULL,<имя столбца2> тип столбца,….CONSTRAINT <имя
ограничения> FOREIGN KEY (<имя столбца дочерней таблицы>)
REFERENCES <имя родительской таблицы> (<имя столбца родительской
таблицы>);
2. Проследите все реляционные связи таблицы titles с ранее созданными
таблицами. Создайте таблицы titles и titleauthor.
3. Для добавления или удаления ограничения после создания таблицы
используются следующие инструкции соответственно:
ALTER TABLE <имя таблицы>ADD CONSTRAINT <имя
ограничения> FOREIGN KEY (<имя столбца дочерней таблицы>)
91

REFERENCES <имя родительской таблицы> (<имя столбца родительской
таблицы>);
ALTER TABLE <имя таблицы>DROP CONSTRAINT <имя
ограничения>;
Задание №5. Добавление, изменение, удаление записей таблицы
1. Для добавления записей:
INSERT INTO <имя таблицы> (<имя столбца1>, <имя
столбца2>, …)VALUES (<значение столбца1>,<значение столбца2>, …);
2. Занесите в typetitles и titles по две строки. Проверьте, что занесенные
строки действительно содержатся в таблице.
3. Для изменения записей:
UPDATE <имя таблицы>
SET <имя столбца1>=<новое значение столбца1>WHERE <имя
столбца2>=<значение столбца2, определяющее одну запись или группу
записей, которые должны быть изменены>;
4. Измените фамилию одного какого-либо автора в таблице authors.
5. Для удаления записей:
DELETE FROM <имя таблицы>
WHERE <имя столбца2>=<значение столбца2, определяющее одну
запись или группу записей, которые должны быть удалены>;
Задание №6. Запросы к одной таблице с использованием агрегатных
функций и раздела GROUPBY.
1. Выдать фамилии, имена, отчества всех авторов в алфавитном порядке
(использовать таблицу authors).
2. Выдать количество публикаций (использовать таблицу titles).
Задание №7. Запросы с соединениями
1. Выдать имена и фамилии авторов книг, отнесенных к типу
публикации «статья» (использовать таблицы authors, titleauthor и titles).
2. Выдать фамилии, имена, отчества всех авторов, у которых есть хотя
бы одна публикация (использовать таблицу authors, titleauthor).
92

Пример выполнения задания
Выполнение заданий в SQL
Создание таблицы «authors»
CREATE TABLE authors
(ID COUNTER Primary key not null, Lastname varchar(40) not null,
Firstname varchar(20) not null, Surname varchar(40) not null);
Создание таблицы «publishers»
CREATE TABLE publishers
(ID COUNTER Primary key not null, Pubname varchar(40) not null, Country
varchar(30) not null, City varchar(40) not null);
Создание таблицы «titleauthor»
CREATE TABLE titleauthor
(ID COUNTER Primary key not null, Title long not null, Author long not null,
FOREIGN KEY (Title)
REFERENCES titles (Id));
Создание таблицы «titles»
CREATE TABLE titles
(Id counter primary key not null, Title varchar(40) not null, DatePub DateTime
Not null, Notes varchar(200), Typetitles long not null, Publishers long not null,
FOREIGN KEY (Typetitles)
REFERENCES typetitles (Id));
Создание таблицы «typetitles»
CREATE TABLE typetitles
(ID COUNTER Primary key not null, Name varchar(40) not null);
Добавление столбца
ALTER TABLE authors
ADD COLUMN Name varchar(40);
Удаление столбца
ALTER TABLE authors
DROP COLUMN Name ;
Создание индексов
93

CREATE UNIQUE INDEX Namez
ON authors (Id,
Lastname,
Firstname,
Surname);
Создание связей
CREATE TABLE titles
(Id COUNTER PRIMARY KEY NOT NULL,
Title varchar(40) NOT NULL,
DatePub ….DateTime NOT NULL,
Notes varchar(200),
Typetitles LONG NOT NULL,
Publishers LONG NOT NULL
REFERENCES typetitles (Id));
Добавление записи
INSERT INTO titles ( Id, Title, DatePub, Notes, Typetitles, Publishers )
VALUES (6, Романы);
Удаление записи
DELETE FROM typetitles
WHERE Name=типпубликации;
ФИО всех авторов в алфавитном порядке
SELECT authors.Lastname, authors.Firstname, authors.Surname
FROM authors
ORDER BY authors.Lastname;
94

Кол-во публикаций
SELECT Count(titles.Title) AS [количество]
FROM titles;
Имена и фамилии авторов книг, отнесенных к типу публикация
«статья»
SELECT authors.Lastname, authors.Firstname, titles.Title
FROM titles INNER JOIN (authors INNER JOIN titleauthor ON authors.Id =
titleauthor.Author) ON titles.Id = titleauthor.Title
WHERE (((titles.Typetitles)=4))
GROUP BY authors.Lastname, authors.Firstname, titles.Title;
ФИО всех авторов, у которых есть хотя бы одна публикация
SELECT authors.Lastname, authors.Firstname, authors.Surname,
titleauthor.Title
FROM authors INNER JOIN titleauthor ON authors.Id = titleauthor.Author;
Вопросы к работе № 10
1. Из каких языков состоит SQL Microsoft Access 12.
2. Оператор SELECT Особенности написания. Примеры
3. Операторы DDL Примеры
4. Для чего предназначены операторы DCL Примеры
5. Стандартизация языка SQL
6. Из каких языков состоит SQL Microsoft Access
7. Оператор SELECT Особенности написания. Примеры
8. Операторы DDL Примеры
9. Для чего предназначены операторы DCL Примеры
10. Стандартизация языка SQL
95

Макросы. Создание Макросов.
Запуск макроса.
Назначение клавиши для выполнения макрокоманды или набора
макрокоманд.
Использование условий в макросах.
Модули.
Практическая работа № 11.
Вопросы к работе № 11.
ТЕМА 11
Макросы и модули
Макросы. Создание Макросов
Свободные макросы содержат различные команды для автоматизации
работы приложения и сохраняются как отдельные объекты базы данных.
Создание простого макроса
На вкладке Создание – кнопка Макрос - пункт Макрос.
Откроется окно, верхняя часть которого для определения нового макроса,
а нижняя предназначена для ввода значений аргументов макрокоманд,
включенных в макрос. Это окно состоит из столбцов: Макрокоманда,
Аргументы, Примечания и для остальных соответствующие кнопки: Имена
макросов, Условия.
Создадим макрос, открывающий отчет.
Выбираем макрокоманду Открыть отчет.
В нижней части окна Access выведет аргументы этой макрокоманды:
Имя отчета – отчет, который надо открыть.
Режим – просмотр на экране.
Перед запуском следует выбрать команду Меню Office – Сохранить
как – Сохранить объект как и в открывшемся окне Сохранение необходимо
задать имя макроса.
Внедренные макросы
Внедренные макросы создаются внутри объекта.
96

Открыть объект БД в режиме конструктора (или макета)
Открыть окно свойств объекта или элемента управления и перейти на
вкладку События.
Выбрать событие запускающее макрос и щелкнуть кнопку построителя
(с многоточием) и выбрать нужный вариант:
Макросы– для создания внедренного макроса,
Выражения – для вызова построителя выражений,
Программы – для создания внедренного модуля в редакторе VBA.
Выбрав Макрос откроется режим конструктора макроса.
Создать макрос и закрыть его.
Макрос будет сохранен с объектом или элементом управления, имя ему
задавать не надо.
Создание макроса
Создайте макрос, который открывает таблицу Автомобили, выделяет эту
таблицу, открывает для нее форму Форма1, применяет к ней фильтр,
позволяющий посмотреть записи об автомобилях с типом кузова седан. Для
этого сделайте следующее.
1. На вкладке Создание – кнопка Макрос - пункт Макрос
2. В столбце Макрокоманда щелкните первую ячейку и, нажав кнопку
раскрытия списка, открывающую список макрокоманд, выберите команду
Открыть таблицу. В области задания аргументов макрокоманды задайте
следующие аргументы:
Имя таблицы Автомобили
Режим Таблица
Режим данных Изменение
3. Введите текст комментария к макрокоманде. Комментарии не являются
обязательным компонентом, они облегчают понимание и сопровождение
макросов.
4. Для добавления в макрос других макрокоманд перейдите на
следующую строку и повторите шаги 2 и 3 для открытия Формы и задания
условия фильтрации.
Запуск макроса
Выполнение макроса может начинаться по команде пользователя, при
вызове из другого макроса или процедуры обработки события, а также в ответ
на событие в форме, отчете или элементе управления. Например, можно связать
97

макрос с кнопкой в форме или отчете, в результате чего макрос будет
запускаться при нажатии кнопки. Допускаются также создание специальной
команды меню или кнопки панели инструментов, запускающей макрос,
определение сочетания клавиш, нажатие которых запускает макрос, а также
автоматический запуск макроса при открытии базы данных.
Запустим созданный макрос Макрос1, щелкнув кнопку ! Выполнить
Ленты на вкладке Конструктор (Работа с макросами). Макрос выполнится, и
в окне MS Access будет раскрыта форма Форма1 с отфильтрованными
записями.
Запустить можно также из области переходов (двойным щелчком или
через команду контекстного меню), с помощью кнопки Выполнить макрос
раздела Макрос вкладки Работа с базами данных Ленты и дважды щелкнуть
на нужном макросе.
При запуске макроса происходит последовательное выполнение
макрокоманд с первой строки до конца.
При построении последовательности используют:
Установить сообщения – запрещает/разрешает прерывание выполнения
макроса для открытия окон сообщений (аргумент макрокоманды имеет
значение Нет/Да)
Сообщение – для вывода на экран информационного сообщения нужного
содержания.
Обновить объект- для обновления информации.
Песочные часы – выводит указатель в виде песочных часов.
ОстановитьМакрос – для остановки работы макроса.
Для прерывания выполнения макроса используют сочетание клавиш CtrlBreak
Назначение клавиши для выполнения макрокоманды или набора
макрокоманд
Макрос с именем AutoKeys позволяет связать макрос с конкретной
клавишей или сочетанием клавиш. Для этого в столбце Имя макроса
указывается специальный код клавиши или сочетание клавиш, с которыми
связывается макрос.
Сочетание клавиш, используемые для назначения клавиш в группе
макросов AutoKeys, представлены в нижеследующей таблице. После этого при
нажатии клавиши или сочетания клавиш Microsoft Access будет выполнять
данную макрокоманду.
98

Примечание. Допустимые сочетания клавиш являются подмножеством
ИнструкцияSendKeys
Сочетание клавиш для
назначениямакросу
^A или ^4
Ctrl+Любая буква или цифра
{F1}
Любая функциональная клавиша
^{F1}
Ctrl+Любая функциональная клавиша
+{F1}
Shift+Любая функциональная
клавиша
{INSERT}
Insert
^{INSERT}
Ctrl+Insert
+{INSERT}
Shift+Insert
{DELETE}
Delete
^{DELETE}
Ctrl+Delete
+{DELETE}
Shift+Delete
синтаксиса инструкции Visual Basic SendKeys. Если макрокоманда или набор
макрокоманд связывается с сочетанием клавиш, которое уже используется в
MS Access ( например Ctrl+C – сочетание клавиш для команды Копировать),
то новое назначение макрокоманд на это сочетание клавиш заменит
стандартное значение команд MS Access.
Сочетание клавиш, используемые для назначения клавиш в группе
AutoKeys:
Для задания назначения макросу Макрос 1 комбинация клавиш Shift+F3 в
Конструкторе (Работа с макросами) нажмем кнопку «Имена макросов»,
затем укажем в ячейке столбца Имя макроса сочетание клавиш Shift+F3, с
которыми нужно связать макрокоманду или набор макрокоманд.
Добавим в макрос набор макрокоманд Макрос1, который должен
выполнятся при нажатии указанного сочетания клавиш. Сохраним группу
макросов под именем AutoKeys. Сразу после сохранения новые сочетания
клавиш вступят в действие и будут доступны при каждом открытии базы
данных.
Для проверки действия назначенной комбинации клавиш вызова макроса
Макрос1 нажмем Shift+F3. макрос будет вызван, и все его макрокоманды
выполнятся.
99

Выполнение макрокоманд при открытии базы данных
Специальный макрос AutoExec позволяет автоматически выполнить
макрокоманду или набор макрокоманд при открытии базы данных. В процессе
открытия базы данных Microsoft Access выполняет поиск макроса с этим
именем и, если такой макрос существует, автоматически запускает его. Для
выполнения макрокоманд при открытии конкретной базы данных создайте
макрос, содержащий макрокоманды, и сохраните его под именем AutoExec.
При следующем открытии базы данных MS Access автоматически запустит
этот макрос.
Макрокоманды макроса AutoExec выполняется автоматически при
открытии БД
Использование условий в макросах
В некоторых случаях требуется выполнять макрокоманду или серию
макрокоманд только при выполнении некоторых условий. Например, если в
макросе проверяется соответствие данных в форме условиям на значение, то
для одних значений может потребоваться вывести одно сообщение, а для
других значений – другое сообщение. В подобных случаях условия позволяют
определить порядок передачи управления между макрокомандами в макросе.
Условие задается логическим выражением. В зависимости от значения
логического выражения управление может передаваться разным
макрокомандам. при задании условий можно ссылаться на любой элемент
управления
Условное выражение вводится в ячейку столбца Условие в окне макроса.
Если условие истинно, выполняется макрокоманда, содержащаяся в данной
строке. Для того чтобы выполнить набор макрокоманд при истинности условия,
следует ввести, начиная со следующей строки, многоточие (…) в ячейки
столбца Условие идущих подряд макрокоманд, принадлежащих этому набору.
Сохраним макрос, выбрав в меню Файл команду Сохранить как. В окне
Сохранение зададим имя макросу Макрос1 и укажем тип файла макрос.
В нашем примере, используя условие, можно остановить выполнение
макроса, если не было введено значение параметра.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
