Public Function funRestoreFormControls(frm As Form) As Boolean
Dim 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)