ник: MS_4G
Здравствуйте все!
Появился вот такой вопросик.
Я занимаюсь разработкой приложений в среде MAccess 2003. В некоторых случаях для удобства пользователей создаются панели и меню, на которые выносятся необходимые формы и отчеты. Вручную это делается элементарно, переносом мышкой соответствующих объектов из списка форм и отчетов, и все работает: пользователь кликает на нужную кнопку и открывает что ему в данный момент надо - форму или отчет. Но возникла необходимость переносить формы и отчеты в панели и меню (создавать соответствующие кнопки) программным путем. Приводимый ниже фрагмент решает задачу частично, он формирует свойства соответствующих кнопок такие же, как при ручном их создании, но программно создаваемые кнопки не работают. Возможно, это связано с тем, что при ручном создании кнопок у них свойство .BuiltIn=True, а при программном создании оно получается False.
Кто знает, подскажите, как выйти из ситуации. Может быть, надо создавать макросы или функции для вызова соответствующих форм/отчетов и передавать их как значение параметра при создании кнопки методом Add? Заранее спасибо.
Sub AddButton()
Dim comBar As CommandBar
Dim CBarCtl As CommandBarControl
' Предполагается, что "Пнл1" уже существует
Set comBar = CommandBars("Пнл1")
Set CBarCtl = comBar.Controls.Add(msoControlButton, , "Форм1", 6)
With CBarCtl
.Caption = "Форм1"
.TooltipText = "Открытие формы 'Форм1'"
.Style = 3
.DescriptionText = "Открытие формы 'Форм1'"
.FaceId = 1837
End With 'CBarCtl
Set CBarCtl = comBar.Controls.Add(msoControlButton, , "Отч1", 12)
With CBarCtl
.Caption = "Отч1"
.TooltipText = "Просмотр отчета 'Отч1'"
.Style = 3
.DescriptionText = "Просмотр отчета 'Отч1'"
.FaceId = 1838
End With 'CBarCtl
End Sub