Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_методичка.doc
Скачиваний:
9
Добавлен:
09.11.2019
Размер:
542.21 Кб
Скачать

7.4.1. Примеры макросов с односторонним ветвлением

Пример 23. Пусть при открытии таблицы Детали кнопкой Детали в форме Просмотр таблиц, рассмотренной в примере 22, будет запрашиваться пароль. Если введен правильный пароль, таблица будет открыта, если - неправильный, то будет выдано сообщение на повторный ввод пароля. Для этого нужно выполнить следующую последовательность действий.

  • Придумать пароль, например ффф.

  • Создать форму (без источника данных) по имени фпароль, в которой будет запрашиваться пароль. Такая форма будет содержать надпись Введите пароль и единственный ЭУ Поле. Задайте в окне свойств для поля имя, например, ппароль (вкладка Другие). Задайте свойству Маска ввода (вкладка Данные) значение Пароль (введите из списка и, если средство не установлено, то напишите с помощью клавиатуры). В этом случае при вводе пароля вместо вводимых символов будет отображаться символ *. Сохраните форму и дайте ей имя пароль.

  • Отредактировать групповой макрос Открытие следующим образом:

  • открыть макрос Открытие в режиме конструктора (вкладка Макросы, выделить макрос Открытие, кн. Конструктор в окне БД)

  • дописать строку, в которой в столбце Имя макроса написать Открыть пароль, а в столбце Макрокоманда выбрать из списка макрокоманду ОткрытьФорму, указав в аргументах имя открываемой формы фпароль

  • закрыть групповой макрос, сохранив результаты редакции.

  • Связать событие Нажатие кнопки для кнопки Детали в форме Просмотр таблиц с макросом Открытие.Открыть пароль . Тогда при попытке открыть таблицу Детали ( по кн. Детали в форме Открытие таблиц) сначала откроется форма пароль, которая запросит ввод пароля.

  • Создать макрос по имени мпароль, который будет анализировать правильность ввода пароля:

  • вкладка Макросы

  • кн. Создать в окне БД

  • добавить столбец условий:  Вид/Условия

  • сконструировать следующий макрос:

Условие

Макрокоманда

Примечание

Not Forms![фпароль]![ппароль]=“ффф”

Сообщение

(Сообщение: неверно, повторите ввод пароля)

Forms![фпароль]![ппароль]=“ффф”

ОткрытьТаблицу

(Имя таблицы: Детали,

Режим данных: Только чтение)

Пароль введен верно. Выполнится данная макрокоманда и все следующие макрокоманды с троеточием в столбце Условие.

...

СдвигРазмер

(От верхнего края: 4см)

...

Сообщение

(Сообщение: ОК после просмотра)

Приостановка выполнения макроса для просмотра данных.

...

Закрыть

(Тип объекта: Форма,

Имя объекта: фпароль)

...

Закрыть

(Тип объекта: Таблица,

Имя объекта: Детали)

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

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

  • Открыть форму Просмотр таблиц в режиме формы и убедиться в том, что таблица Детали открывается только при правильном вводе пароля.

Пример 24. Пусть требуется показать детали, которые поставляет поставщик с заданным номером. Эту задачу можно решить разными способами. Укажем один из них.

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

Последовательность действий будет такой.

  • Создать форму (без источника данных) . На форме создать ЭУ Кнопка, на которой написать Детали, и ЭУ Поле со списком. Исправить присоединенную к полю надпись на текст Введите номер поставщика. Для поля со списком определить свойства данных: Тип источника строк:  Таблица/Запрос Источник строк: SELECT  DISTINCT  номерп  FROM  Поставщики; Свойству Имя элемента управления (вкладка Другие) для поля со списком задать значение поставщик (написать с помощью клавиатуры).

  • Закрыть созданную форму, сохранив результаты редакции и задав форме имя Выбор деталей.

  • Создать условный макрос:

Условие

Макрокоманда

Примечание

ВыводНаЭкран

(Включен вывод: Нет,

Сообщение: Ждите. Выполняется макрос)

IsNull(Forms![Выбор деталей]![поставщик]

Сообщение

(Сообщение: Выберите номер поставщика и нажмите кн. Детали)

...

ОстановитьМакрос

Макрос прекратит выполнение, если не выбран из списка поставщик.

ОткрытьФорму

(Имя формы: Поставки,

Режим: Таблица,

Условие отбора:

[номерп]=Forms![Выбор деталей]![поставщик])

Эта и следующая макрокоманды выполнятся, если выбран из списка поставщик.

СдвигРазмер

(От левого края: 6см,

От верхнего края: 2см)

В этом макросе макрокоманда ВыводНаЭкран используется для того, чтобы в процессе выполнения макроса не менялось изображение на экране, т. е. результаты выполнения макроса не отображались на экране. Аргумент Сообщение в этой макрокоманде отображает сообщение в строке состояния (внизу экрана). Макрокоманда ОстановитьМакрос выполняется, если указанное условие истинно, т. е. когда пользователь по кн. Детали до того, как сделал выбор номера поставщика из списка. Это - простейший способ перехвата ошибок в процессе выполнения макроса. Макрокоманды ОткрытьФорму и СдвигРазмер выполняются, когда указанное условие ложно, т. е. пользователь сначала выбрал из списка номер поставщика, а затем по кн. Детали. При открытии формы (для удобства она открывается в режиме таблицы) на данные накладывается фильтр, указанный в аргументе Условие отбора.

  • Закрыть окно конструктора макроса, сохранив макрос и задав ему имя Для выбора деталей.

  • Связать кн. Детали в форме Выбор деталей с макросом Для выбора деталей.

  • Открыть форму Выбор деталей и убедиться в правильности решения поставленной задачи.