|
|
|||||||||||||||||||||||||||||
|
Создание элементов формыТеперь нам надо написать программу, которая создаст управляющие элементы, т.е. метки, кнопки и список формы, восстанавливая их из таблицы базы данных, например, «Калькулятор-форма». Этот метод необходимо изучить потому, что таким образом можно легко восстановить любой шаблон формы и в дальнейшем модифицировать его. Public Function funRestoreFormControls(frm As Form) As BooleanDim ctl As Control, rst As Recordset, dbs As Database, i As Integer On Error GoTo 999 'Переход по ошибке funRestoreFormControls = False 'Возврат значения по ошибке
Set dbs = CurrentDb 'Выбираем текущую базу данных Set rst = dbs.OpenRecordset("SELECT * FROM [Калькулятор-форма]") If rst.RecordCount = 0 Then 'Проверяем запрос rst.Close 'Закрываем запрос Exit Function 'Выходим из программы End If
With rst 'Создание элемента из запроса .MoveLast 'Заполняем запрос данными .MoveFirst 'Переходим на 1 запись For i = 0 To .RecordCount - 1 'Выполняем восстановление для каждой записи Select Case rst!ControlType Case acCommandButton 'Создаем Кнопку Set ctl = appAccess.CreateControl(frm.Name, rst!ControlType, , "", "", rst!Left, rst!Top, rst!Width, rst!Height) ctl.OnClick = "[Event Procedure]" 'Включаем обработку нажатия ctl.Caption = rst!Caption 'Меняем название ctl.ControlTipText = rst!ControlTipText 'Устанавливаем подсказку Case acLabel 'Создаем Надпись Set ctl = appAccess.CreateControl(frm.Name, rst!ControlType, , "", rst!Caption, rst!Left, rst!Top, rst!Width, rst!Height) ctl.BackColor = !BackColor 'Меняем фон Case acTextBox 'Создаем Поле Set ctl = appAccess.CreateControl(frm.Name, rst!ControlType, , "", "", rst!Left, rst!Top, rst!Width, rst!Height) ctl.SpecialEffect = 0 'Выбираем стандартное выделение ctl.BorderColor = 0 'Выбираем черный цвет ctl.BorderStyle = 1 'Выбираем обычную границу Case acListBox 'Создаем Список Set ctl = appAccess.CreateControl(frm.Name, rst!ControlType, , "", "", rst!Left, rst!Top, rst!Width, rst!Height) ctl.SpecialEffect = 0 'Выбираем стандартное выделение ctl.BackColor = rst!BackColor 'Меняем фон списка ctl.BorderColor = 0 'Выбираем стандартное выделение ctl.ColumnCount = 2 'Устанавливаем число колонок ctl.ColumnWidths = "7,932 см;1 см" 'Устанавливаем размер колонок ctl.RowSource = "запросСписокКалькулятора" 'Выбираем запрос для списка End Select ctl.Name = rst!Name 'Изменяем имя элемента ctl.ForeColor = !ForeColor 'Изменяем цвет символов rst.MoveNext 'Переходим на следующую запись Next i End With rst.Close 'Закрываем запрос
funRestoreFormControls = True 'Возвращаем результат Exit Function 'Выходим из программы 999: MsgBox Err.Description 'Сообщаем об ошибке Err.Clear 'Очищаем поток от ошибок End FunctionСсылки по теме
|
|