
- •Введение
- •1. Создание базы данных средствами ms sql server
- •1.1. Структура базы данных
- •1.2. Создание баз данных в ms sql Server 2000
- •1.3. Создание таблиц базы данных в ms sql Server 2000
- •1.4. Типы данных в ms sql Server 2000
- •1.5. Управление пользователями
- •1.6. Способы обмена данными между Access и sql Server через odbc
- •1.7. Определение внешних источников данных в odbc
- •1.8. Связь с таблицами баз данных sql Server
- •1.9. Создание базы данных, таблиц, схемы данных средствами ms sql Server 2005
- •1.10. Обеспечение доступа к базе данных средствами ms sql Server 2005
- •1.11. Перенос базы данных на другой компьютер
- •1.12. Создание источника данных odbc и взаимодействие с приложением Access
- •2. Создание таблиц и схемы данных средствами субд access
- •2.1. Субд Microsoft Access
- •2.2. Объекты Access
- •Создание базы данных в Access 2003
- •Режимы создания таблиц базы данных в Access 2003
- •2.5. Создание таблицы в режиме Конструктор
- •2.6. Редактирование структуры таблицы
- •2.7. Создание и редактирование схемы данных
- •2.8. Ввод и редактирование данных
- •2.9. Создание базы данных, таблиц и схемы данных в Access 2007
- •Формы данных
- •3.1. Общие сведения о форме
- •3.2. Способы создания форм
- •3.3. Области и элементы формы в режиме Конструктор
- •3.4. Кнопки панели элементов
- •3.5. Создание однотабличной формы в режиме автоформы
- •3.6. Редактирование формы в режиме Конструктор
- •3.7. Создание составной формы
- •3.8. Ограничения доступа к данным через форму
- •3.9. Вычисления в форме
- •3.10. Создание форм в Access 2007
- •Запросы
- •Основы разработки запросов
- •Типы запросов
- •Создание запросов на выборку данных в режиме
- •Создание вычисляемого поля в запросе
- •4.5. Создание запроса с групповыми вычислениями
- •4.6. Создание параметрических запросов
- •4.7. Создание перекрестных запросов
- •4.8. Запрос на создание новой таблицы
- •4.9. Запрос на добавление записей
- •4.10. Запрос на удаление записей
- •4.11. Запрос на обновление записей
- •4.12. Создание запросов в Access 2007
- •5.1. Способы создания отчетов
- •Типы элементов управления
- •Создание надписей в отчете
- •Создание связных элементов (полей)
- •Создание вычисляемых элементов
- •Группирование записей в отчете
- •Создание отчета с помощью мастера отчетов
- •Создание отчета в режиме Конструктор
- •6. Заполнение полосы Верхний колонтитул.
- •7. Заполнение полосы Заголовок группы.
- •8. Заполнение полосы Область данных.
- •9. Заполнение полосы Примечание группы.
- •10. Заполнение полосы Нижний колонтитул.
- •11. Заполнение полосы Примечание отчета.
- •Экзаменационная ведомость Факультет Шифр группы Дисциплина
- •Списки групп
- •5.9. Создание отчетов в Access 2007
- •Создание макросов
- •6.1. Основы создания макросов
- •6.2. Формирование макрокоманд
- •6.3. Создание группы макросов
- •6.4. Использование условий в макросе
- •6.5. Создание макросов с использованием ссылок на объекты
- •6.6. Организация выполнения макроса
- •6.7. Выполнение макроса с наступлением события
- •6.8. Создание кнопки запуска макроса в форме
- •6.9. Пример создания макроса для решения задачи, использующей запросы
- •6.10. Пример создания макроса, работающего с данными нескольких объектов
- •Создание модулей
- •Общие сведения о языке vba
- •Модель объектов приложения Access
- •Модель объектов доступа к данным
- •Описание переменных
- •Операторы присваивания
- •Описание констант
- •Операторы управления выполнением программ
- •Операторы организации цикла:
- •Использование объекта Recordset
- •Выполнение процедур vba
- •7.10. Примеры модулей
- •Пример 3. Рассчитать суммарную поставку по каждому индексу товара в таблице поставка.
- •Пример 4. Создать новую таблицу Продукты из двух полей Индекс товара и Название, обеспечить ввод данных в эту таблицу.
- •Для решения задачи необходимо создать форму Поставщики_Города нижеследующего вида и связать с ней процедуру.
- •Пример 6. Открыть таблицу Товары, прочесть и вывести на экран все записи.
- •Пример 7. Выбор записей из таблицы Поставка для товара с кодом 123.
- •Пример 8. Выбор данных из связанных таблиц Товары и Поставка, связанных по индексу товара.
- •Пример 9. Выбор данных из трех связанных таблиц Товары, Поставщики и Поставка.
- •Пример 10. Поиск записей по наименованию товара (не ключевое поле) в таблице Товары и вывод найденных записей.
- •Пример 11. Поиск записей по дате поступления (не ключевое поле) в таблице Поставка и вывод найденных записей.
- •Пример 12. Поиск записей по индексу товара в таблице Товары и замена поля Розничная цена.
- •Пример 13. Поиск записей в таблице Товары для записей, где поле Розничная цена меньше заданной.
- •Управление приложением пользователя
- •Создание панели управления приложением с помощью диспетчера
- •Добавление рисунка в кнопочную форму
- •Создание кнопочной формы в режиме конструктора
- •Запуск Access с открытием приложения пользователя
- •Задания по разработке баз данных и приложений для работы с ними
- •Продажа бензина за ________________
- •6. Создать макросы
- •7. Создать модули
- •8. Создать панель управления приложением
- •4. Создать запросы.
- •Периодичность
- •Справка о продаже билетов
- •6. Создать макросы
- •7. Создать модули
- •8. Создать панель управления приложением
- •4. Создать запросы.
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением.
- •4. Создать запросы.
- •Расписание работы
- •Список сотрудников
- •Список больных фио врача Дата посещения
- •6. Создать макросы
- •7. Создать модули
- •8. Создать панель управления приложением
- •Итоговая ведомость замен
- •6. Создать макросы
- •7. Создать модули
- •8. Создать панель управления приложением
- •4. Создать запросы.
- •5. Создать отчеты.
- •Факультет __________ Группа ______
- •Выдача книг
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением.
- •4. Создать запросы.
- •5. Создать отчеты.
- •Список автомобилей
- •Список водителей
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением
- •4. Создать запросы.
- •5. Создать отчеты.
- •Транзисторы
- •Справка о продаже транзисторов
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением.
- •4. Создать запросы.
- •5. Создать отчеты.
- •Выпрямительные диоды
- •Закупка приборов
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением.
- •4. Создать запросы.
- •5. Создать отчеты.
- •Сводная ведомость, дата
- •Справка о поставках мебели
- •6. Создать макросы.
- •7. Создать модули.
- •8. Создать панель управления приложением.
- •Библиографический список
- •Оглавление
6.4. Использование условий в макросе
Для реализации ветвящихся алгоритмов в программах необходим механизм, обеспечивающий выполнение различных действий в зависимости от заданных условий. В языке макросов можно организовать выполнение макрокоманды или набора макрокоманд только при выполнении некоторых условий. Например, если в макросе проверяется значение поля в форме на соответствие заданным условиям, то для одних значений может потребоваться вывести сообщение, а для других значений произвести вывод отчета.
Условие вводится в строку макрокоманды в столбец Условие. Для получения в окне создания макроса данного столбца нажимают кнопку Условие на панели инструментов. Условие задается с помощью логического выражения.
Для образования набора макрокоманд, которые нужно связать с выполнением условия, в их условии записывается многоточие (…).
Если выражение истинно, выполняется макрокоманда, находящаяся в той же строке, и все следующие за ней макрокоманды до следующей макрокоманды с условием.
Если выражение ложно, то макрокоманда, находящаяся в той же строке, все следующие за ней макрокоманды, у которых вместо условия проставлено многоточие (…), будут пропущены. Следующей будет выполняться макрокоманда с новым условием или с пустой ячейкой условия. Ввод в столбец условия значения False (Ложь) также позволяет пропустить выполнение макрокоманды.
Пример макроса с двумя условиями представлен в табл. 6.1.
Таблица 6.1
Примеры макросов с условиями
Условие |
Макрокоманда |
Примечание |
[ГОРОД]<> “Воронеж” |
ОткрытьОтчет |
Направление в общежитие |
… |
ПрименитьФильтр |
Выбрать запись с текущей фамилией |
… |
Печать |
Распечатать направление |
|
ЗадатьЗначение |
Начислить дотацию на питание |
[ДЕТИ]=”Да” |
ЗадатьЗначение |
Начислить дотацию |
|
ОткрытьЗапрос |
Подсчет начисленного |
Первое условие макроса проверяет значение поля ГОРОД в текущей записи формы. Эта форма работает с данными о студентах. На момент получения управления макросом эта форма должна быть текущим объектом. Если первое условие истинно, т. е. студент не является жителем Воронежа, выполняются четыре первых макрокоманды. При невыполнении первого условия пропускается первая макрокоманда с этим условием и следующие за ней, отмеченные многоточием. Пятая макрокоманда будет выполнена только в случае выполнения второго условия.
Пример макроса с ветвлением представлен в табл. 6.2.
Таблица 6.2
Примеры макросов с ветвлениями
Условие |
Макрокоманда |
Примечание |
[ГОРОД] Is Null |
ОткрытьТаблицу |
Ошибочных записей |
… |
НаЗапись |
Сделать текущей новую запись |
… |
ЗадатьЗначение |
Записать идентификатор в таблицу ошибок |
… |
ОстановитьМак-рос |
|
Продолжение табл. 4.2
[ГОРОД]<> ”Воронеж” |
ОткрытьОтчет |
Направление в общежитие |
… |
ПрименитьФильтр |
Выбрать запись с текущей фамилией |
Первое условие проверяет в текущей записи, заполнено ли поле ГОРОД. Если поле ГОРОД не содержит значения, выполняется первая макрокоманда и следующие три макрокоманды с многоточием в условии, последняя из которых завершает макрос. Если поле ГОРОД заполнено, то указанные четыре макрокоманды пропускаются и работа продолжается по другой ветке, начиная с проверки условия в пятой макрокоманде. Замена макрокоманды «ОстановитьМакрос» на макрокоманду «ЗапускМакроса» позволит продолжить выполнение первой ветки. Таким приемом можно получить любое ветвление программы.
Примеры логических выражений в условии выполнения макрокоманды.
Проверка в текущей записи формы, из которой запускается макрос:
Значения в поле ОЦЕНКА на равенство двойке
ОЦЕНКА = 2;
Нахождение значения в поле ДАТА в интервале от 1 сентября до 20 сентября 2001 года
[ДАТА] Between #0109.01# And #20.09.01#
Значения в поле ОЦЕНКА на равенство пустому (Null) значению
Is Null([ОЦЕНКА]) или [ОЦЕНКА] Is Null.
Проверка одновременного выполнения двух условий на равенство заданным значениям в поле НП и поле ОЦЕНКА:
[НП] = ”Базы данных” And [ОЦЕНКА] = 5
Подсчет числа значений (с помощью функции DCount) в поле ШГ таблицы СТУДЕНТЫ и сравнение его с заданным:
Dcount (“[ШГ]”,”СТУДЕНТЫ”) > 50
Сравнение значения, возвращаемого функцией, с заданным значением. Функция MsgBox() может быть использована для вывода на экран окна диалога, содержащего нужное сообщение, и кнопок ОК и Отмена, нажатие которых формирует то или иное значение функции.
MsgBox(«Выдать справку?»,1) = 1
Первый параметр функции задает выводимое на экран сообщение, единица на месте второго параметра определяет отображение в окне диалога кнопок ОК и Отмена. Если пользователь нажимает кнопку ОК, функция возвращает значение «1», если кнопку Отмена, функция возвращает значение «2».
Сравнение значений поля в форме с заданным значением. Сравнение значения поля КОЛ в текущей записи формы ГРУППЫ с заданным значением:
Forms![ГРУППЫ]![КОЛ] < 30