Практические задания / Prakticheskaya_rabota_12
.docxПрактическая работа №12
Создание формы средствами VBA.
Цель работы: научиться создавать процедуру для создания формы средствами VBA на основе таблицы, размещения в ней элементов управления, научиться размещать процедуру в стандартном модуле, организовывать её выполнение. Теоретическая часть
Создайте в базе данных Учебный процесс средствами VBA новую форму на основе таблицы ГРУППА, отображающую содержимое поля НГ (номер группы).
Новая форма может быть создана в процедуре Access VBA методом CreateForm объекта Application, который возвращает объект Form. Метод CreateForm открывает пустую новую форму в режиме конструктора.
Практическая часть
Чтобы указать источник данных новой формы, используется свойство формы RecordSource В качестве значения свойства может быть использовано имя таблицы, запроса или SQL-оператор. Присваиваемое свойству значение должно иметь текстовый (string) тип данных
Для размещения в форме различных элементов управления используется метод CreateControl, с помощью которого можно создать и поле (элемент TextBox) с присоединенной надписью (элемент Label). Аргументы этого метода указывают:
• первый — имя открытой формы или отчета, в котором создается элемент управления,
• второй — тип создаваемого элемента управления;
• третий — область формы, в которой следует разместить элемент; по умолчанию это область данных (Detail section);
• четвертый — имя родительского элемента, к которому присоединяется создаваемый;
• пятый — имя поля, которое должно отображаться элементом управления TextBox, или подпись для элемента Lаbеl;
• шестой — координаты размещения левого верхнего угла элемента,
• седьмой — ширину и высоту элемента.
Для записи аргументов используются константы Access.
Перед созданием элемента управления переменным intLabelX, intLabelY intDataX, intDataY присваиваются значения, которые определяют координаты его размещения.
Ниже приведены инструкции процедуры, в которой создается форма со стандартным именем и единственным полем
Sub НоваяФорма ()
-
Определение объектной переменной для формы
Dim frmAs Form
-
Создание новой формы и сохранение ссыпки на нее в объектной переменной
Set frm = CreateForm
-
Определение в качестве источника данных формы таблицы ГГРППА
frm.RecordSource = "ГРУППА"
Определение объектных переменных для поля и надписи в форме Dim ctlLabel As Control, ctlText As Control
-
Определение переменных для координат размещения элементов
Dim intDataX As Integer, intDataY As Integer
Dim intLabelX As Integer, intLabelY As Integer
-
Присваивание значений координатам размещения элементов управления форма
intLabelX = 100
intLabelY =100
intDataX = 100
intDataY = 500
-
Создание в форме элемента управления — поле НГ по умолчанию в разделе данных и стандартного размера
Set ctlText = CreateControl(frm.Name, acTextBox,, "", "НГ",intDataX, intDataY)
-
Создание элемента управления — надпись поля НГ
setctlLabel = CreateControl(frm.Name, acLabel,,ctlText.Name,"Номер группы",intLabelX, intLabelY)
-
Восстановить форму из свернутого состояния
DoCmd.Restore
End Sub
Дополните процедуру следующими инструкциями:
Эта инструкция выведет в окно отладки имя вновь созданной формы Debug.Print frm.Name
Изменение имени поля (по умолчанию поле имеет имя поле)
сtlText.Name = "полюшко"
Эта инструкция выведет в окно Immediate Windows имя поля
Debug. Print ctlText. Name
Закрытие формы с сохранением
DoCmdCloseacForm, frm.Name, acSaveYes
Разместите процедуру в стандартном модуле. Для выполнения активной процедуры выберите в редакторе Visual Basic команду Run Sub/UserForm в меню Run. В противном случае выберите команду RunMacro | Run. При выполнении последней команды отобразится окно с полным списком процедур всех стандартных модулей проекта. Выберите процедуру Новая Форма и выполните ее. Напомним, что окно отладки Immediate открывается в редакторе Visual Basic командой View | ImmediateWindow.
Перейдите в окно Access, найдите форму в окне базы данных, откройте ее и убедитесь, что процедура работает правильно.
Контрольные вопросы
-
Как создать новую форму с помощью VBA?
-
Чтобы указать источник данных новой формы, используется…?
-
Какой используется метод для размещения в форме различных элементов управления?
-
Что используется для записи аргументов?
-
Перед созданием элемента управления что делается с переменными?
-
Как записывается инструкция процедуры Создание новой формы и сохранение ссылки на нее в объектной переменной?
-
Как записывается инструкция процедуры Восстановить форму из свернутого состояния?
-
Как записывается инструкция процедуры Закрытие формы с сохранением?
-
Для выполнения активной процедуры необходимо?
-
Как проверить правильность работы процедуры?