- •Оглавление
- •1. Запуск access
- •2. Создание новой бд
- •3. Таблицы
- •3.1. Создание структуры таблицы
- •3.2. Загрузка таблицы данными
- •3.3. Модификация структуры таблицы
- •3.4. Работа с макетом таблицы
- •3.5. Схема данных
- •3.6. Печать таблицы
- •4. Запросы
- •4.1.Типы запросов
- •4.2.Создание qbe-запроса
- •4.3. Заполнение бланка запроса
- •4.4. Работа с построителем выражений
- •4.5. Редактирование запроса
- •4.6. Печать динамического набора данных
- •4.7. Примеры запросов
- •4.7.1. Запрос на выборку данных
- •4.7.2.Запрос с параметром (параметрический запрос)
- •4.7.3. Запрос на создание таблицы
- •4.7.4. Запросы на изменение данных
- •4.7.4.1. На добавление записей
- •4.7.4.3. Запрос на обновление (корректировку) данных
- •4.7.5. Группирование данных в запросе
- •4.7.6. Перекрестный запрос
- •4.7.7. Подчиненные (вложенные) запросы
- •4.8.Фильтрация данных
- •Фильтр по выделенному фрагменту данных
- •Фильтр для
- •5. Формы
- •5.1. Создание однотабличной формы
- •5.2. Редактирование формы
- •5.3. Часто используемые свойства формы
- •5.4. Элементы управления и их свойства
- •6. Отчеты
- •6.1. Создание отчета
- •6.2. Работа с отчетом в режиме конструктора
- •6.3. Сортировка и группировка данных
- •7. Макросы
- •7.1. Создание макросов
- •7.2. Краткая характеристика макрокоманд
- •7.3. Групповые макросы
- •7.4. Реализация ветвлений в макросах
- •7.4.1. Примеры макросов с односторонним ветвлением
- •7.4.2. Пример макроса с двусторонним ветвлением
- •7.5. Реализация циклов в макросах
- •8. Основы создания пользовательского интерфейса
- •8. 1. Взаимодействие форм
- •Интерфейс.Открыть просмотр
- •Интерфейс.Открыть редактирование
- •Интерфейс.Закрыть просмотр
- •8. 2. Создание кнопочных меню с помощью диспетчера кнопочных форм
- •8. 3. Создание пользовательских меню
- •8. 3.1. Создание пользовательских меню с помощью макросов
7.4.1. Примеры макросов с односторонним ветвлением
Пример 23. Пусть при открытии таблицы Детали кнопкой Детали в форме Просмотр таблиц, рассмотренной в примере 22, будет запрашиваться пароль. Если введен правильный пароль, таблица будет открыта, если - неправильный, то будет выдано сообщение на повторный ввод пароля. Для этого нужно выполнить следующую последовательность действий.
Придумать пароль, например ффф.
Создать форму (без источника данных) по имени фпароль, в которой будет запрашиваться пароль. Такая форма будет содержать надпись Введите пароль и единственный ЭУ Поле. Задайте в окне свойств для поля имя, например, ппароль (вкладка Другие). Задайте свойству Маска ввода (вкладка Данные) значение Пароль (введите из списка и, если средство не установлено, то напишите с помощью клавиатуры). В этом случае при вводе пароля вместо вводимых символов будет отображаться символ *. Сохраните форму и дайте ей имя пароль.
Отредактировать групповой макрос Открытие следующим образом:
открыть макрос Открытие в режиме конструктора (вкладка Макросы, выделить макрос Открытие, кн. Конструктор в окне БД)
дописать строку, в которой в столбце Имя макроса написать Открыть пароль, а в столбце Макрокоманда выбрать из списка макрокоманду ОткрытьФорму, указав в аргументах имя открываемой формы фпароль
закрыть групповой макрос, сохранив результаты редакции.
Связать событие Нажатие кнопки для кнопки Детали в форме Просмотр таблиц с макросом Открытие.Открыть пароль . Тогда при попытке открыть таблицу Детали (1с по кн. Детали в форме Открытие таблиц) сначала откроется форма пароль, которая запросит ввод пароля.
Создать макрос по имени мпароль, который будет анализировать правильность ввода пароля:
вкладка Макросы
кн. Создать в окне БД
добавить столбец условий: Вид/Условия
сконструировать следующий макрос:
Условие |
Макрокоманда |
Примечание |
Not Forms![фпароль]![ппароль]=“ффф” |
Сообщение (Сообщение: неверно, повторите ввод пароля) |
|
Forms![фпароль]![ппароль]=“ффф” |
ОткрытьТаблицу (Имя таблицы: Детали, Режим данных: Только чтение) |
Пароль введен верно. Выполнится данная макрокоманда и все следующие макрокоманды с троеточием в столбце Условие. |
... |
СдвигРазмер (От верхнего края: 4см) |
|
... |
Сообщение (Сообщение: ОК после просмотра) |
Приостановка выполнения макроса для просмотра данных. |
... |
Закрыть (Тип объекта: Форма, Имя объекта: фпароль) |
|
... |
Закрыть (Тип объекта: Таблица, Имя объекта: Детали) |
|
сохранить макрос, задав ему имя мпароль и закрыть окно конструктора макросов
Связать событие После обновления поля ппароль в форме фпароль с макросом мпароль. Закрыть форму фпароль, сохранив результаты редакции.
Открыть форму Просмотр таблиц в режиме формы и убедиться в том, что таблица Детали открывается только при правильном вводе пароля.
Пример 24. Пусть требуется показать детали, которые поставляет поставщик с заданным номером. Эту задачу можно решить разными способами. Укажем один из них.
Создадим форму по имени Выбор деталей, в которой создадим поле со списком для ввода номера поставщика из таблицы Поставщики. Создадим на форме кнопку, при 1с по которой будем открывать в виде таблицы все сведения о деталях выбранного поставщика.
Последовательность действий будет такой.
Создать форму (без источника данных) . На форме создать ЭУ Кнопка, на которой написать Детали, и ЭУ Поле со списком. Исправить присоединенную к полю надпись на текст Введите номер поставщика. Для поля со списком определить свойства данных: Тип источника строк: Таблица/Запрос Источник строк: SELECT DISTINCT номерп FROM Поставщики; Свойству Имя элемента управления (вкладка Другие) для поля со списком задать значение поставщик (написать с помощью клавиатуры).
Закрыть созданную форму, сохранив результаты редакции и задав форме имя Выбор деталей.
Создать условный макрос:
Условие |
Макрокоманда |
Примечание |
|
ВыводНаЭкран (Включен вывод: Нет, Сообщение: Ждите. Выполняется макрос) |
|
IsNull(Forms![Выбор деталей]![поставщик] |
Сообщение (Сообщение: Выберите номер поставщика и нажмите кн. Детали) |
|
... |
ОстановитьМакрос |
Макрос прекратит выполнение, если не выбран из списка поставщик. |
|
ОткрытьФорму (Имя формы: Поставки, Режим: Таблица, Условие отбора: [номерп]=Forms![Выбор деталей]![поставщик]) |
Эта и следующая макрокоманды выполнятся, если выбран из списка поставщик. |
|
СдвигРазмер (От левого края: 6см, От верхнего края: 2см) |
|
В этом макросе макрокоманда ВыводНаЭкран используется для того, чтобы в процессе выполнения макроса не менялось изображение на экране, т. е. результаты выполнения макроса не отображались на экране. Аргумент Сообщение в этой макрокоманде отображает сообщение в строке состояния (внизу экрана). Макрокоманда ОстановитьМакрос выполняется, если указанное условие истинно, т. е. когда пользователь 1с по кн. Детали до того, как сделал выбор номера поставщика из списка. Это - простейший способ перехвата ошибок в процессе выполнения макроса. Макрокоманды ОткрытьФорму и СдвигРазмер выполняются, когда указанное условие ложно, т. е. пользователь сначала выбрал из списка номер поставщика, а затем 1с по кн. Детали. При открытии формы (для удобства она открывается в режиме таблицы) на данные накладывается фильтр, указанный в аргументе Условие отбора.
Закрыть окно конструктора макроса, сохранив макрос и задав ему имя Для выбора деталей.
Связать кн. Детали в форме Выбор деталей с макросом Для выбора деталей.
Открыть форму Выбор деталей и убедиться в правильности решения поставленной задачи.