|
|
|
| помогите плиз. замучился
как в VBA правильно обратиться к свои-вам формы и его компонентам
или как оформить ссылку на объект.форма, получить доступ
Ошибка не соответсвие типа данных
вар1.
Dim myProjCurr As Access.CurrentProject
Dim myForm As Access.Form
Set myProjCurr = Access.CurrentProject
Set myForm = myProjCurr.AllForms("Form1") - ошбка не соответсвие типа данных
вар.2
Dim myForm As Object - для меня не пойдет потому, что нет многих ств-в формы (например section, controls и т.д.)
а если as Access.Form - как раз все что мне надо.
конечный результат. мне надо кооректировать некоторые свойства формы и контролов.
150 форм, в каждой форме по 10-15 контролов. | |
|
| |
|
|
|
| А чего так много форм
я бы писать их замучался
к форме можно обратиться если она открыта
Forms("имя формы").свойство
Forms![имя формы]("Имя контрола").свойство
Например
forms("главная").Visible=true
forms![главная].Visible=true
forms![главная]![поле со списком 1].Visible=true
forms![главная]("поле со списком 1").Visible=true
к некоторым свойствам можно обратиться только если форма открыта в режиме конструктора
но 150 форм - это перебор | |
|
| |
|
|
|
| это верно, если форма "открыта", и обращаться к ней можно только в внутри самой формы.
а как обращаться к форме из Module
Sub mySub()
Dim myProj as access.currentproject
Set myProj=access.currentproject
Dim myForm as access.form
Set myForm = myProj.AllForms("Form1") - выдет ошибку
end sub
а если я пишу Dim myForm as accessobject
тогда я не могу получить свойства selection, controls и т.д.
так как получить доступ к данным свойствам и другим? | |
|
| |
|
|
|
| так же и из модуля
если форма открыта | |
|
| |
|
|
|
| я попробовал в Module ошибка
DoCmd.OpenForm "Form1", acDesign
Dim myFrm As Access.Form
Set myFrm = Access.CurrentProject.AllForms("Form1") - Type miss mutch | |
|
| |
|
|
|
| Получилось
Set myFrm = Access.Forms("Form1")
Ура. спасибо. | |
|
| |
|
|
|
| тогда что такое CurrentProject и CurrentData
для каких случаев? | |
|
| |
|
|
|
| http://msdn.microsoft.com/en-us/library/aa164568%28v=office.10%29.aspx | |
|
| |
|
|
|
|
Function Rep_RS()
str="Select * from tabla"
DoCmd.OpenReport "Отчет_1", acViewDesign, , , acHidden
Reports!Отчет_1.RecordSource = str_
DoCmd.Close acReport, "Отчет_1", acSaveYes
End Function
|
открыл отчет в режиме конструктор
загнал в него новый источник данных
закрыл отчет с сохранением.
работает из модуля, аналогично для форм.
если в процессе работы формы нужно скрыть/показать поле, поменять цвет
все спокойно отрабатывается через события - обращение к текущему объекту через Me:
Me.Поле134.Visible=False
п.с. Dim frm as Form - работает и без приставки Access | |
|
| |