| |
автор: ?????? (30.11.-1 в 00:00) |
|
| | Здравствуйте, хотелось бы разобраться, как в форму, созданную с помощью VBA добавить код обработки событий. То есть я создал форму, а теперь хочу, чтобы при загрузке она выполняла какие-то действия. Заранее благодарен за ответ | |
| |
| |
| |
автор: Explorer (30.11.-1 в 00:00) |
|
| |
to: ??????
(30.11.-1 в 00:00)
| | | а как вы в VBA форму создаете? насколько я понял вы создали форму Access мастером или в Access дизайнере форм и хотите теперь обработать ее события - выполнить "какие-то действия"
у формы есть события, которые могут вас заинтересовать
Load
Open
Activate
Current
выбирайте нужное в своиствах формы и вешаете на него вашу процедуру например:
[red]Private Sub[/red] Form_Open(Cancel As Integer)
[green] Minimize the database window and initialize the form.[/green]
On Error GoTo Form_Open_Err
[green] Minimize the database window.[/green]
DoCmd.SelectObject acForm, "Switchboard", True
DoCmd.Minimize
[green] Move to the switchboard page that is marked as the default.[/green]
Me.Filter = "[ItemNumber] = 0 AND [Argument] = Default "
Me.FilterOn = True
Form_Open_Exit:
Exit Sub
Form_Open_Err:
MsgBox Err.Description
Resume Form_Open_Exit
[red]End Sub[/red]
только постарайтесь уточнить - нужно ли вам "чтобы при загрузке она выполняла какие-то действия"
или лучше "чтобы при открытии она выполняла какие-то действия" | |
| |
| |
| |
автор: ?????? (30.11.-1 в 00:00) |
|
| |
to: Explorer
(30.11.-1 в 00:00)
| | | Re: а как вы в VBA форму создаете? А где я написал, что я создал мастером или в дизайнере форм? По-моему, я четко выразился - средствами VBA. Если интересен код, то
dim frm as form
set frm=createform()
и вот после этого мне надо вставить процедуру во вновь созданную форму. До
frm.onload="[event procedure]" я уже дошёл. А вот где эту "[event procedure] писать я пока не разобрался | |
| |
| |
| |
автор: Explorer (30.11.-1 в 00:00) |
|
| |
to: ??????
(30.11.-1 в 00:00)
| | | Re: мне надо вставить процедуру во вновь созданную форму ну VBA так VBA, разные, знаете-ли вопросы формулируют...
у формы созданной таким образом модуля еще не существует - некуда вставлять вашу процедуру
можно создать модуль одновременно с созданием формы и сразу вставить процедуру в нужное событие (то что и требуется?)
Function CreateSuperForm () As Boolean
Dim frm As Form объявляем форму
Dim mdl As Module объявляем модуль
Dim lngCodeLine As Long объявляем номер строки кода
Dim strCodeLine As String объявляем содержание строки кода
Set frm = CreateForm создаем форму
Set mdl = frm. Module создаем модуль
IngCodeLine = mdl.CreateEventProc("Load", "Form") создаем событие загрузка формы
strCodeLine = "Me.Caption = Me.Name & Me.Name" создаем процедуру на событие
mdl.InsertLines IngCodeLine + 1, strCodeLine вставляем нашу строчку в нужное место модуля формы
CreateSuperForm = True функция отработала правильно
эта функция создаст форму с умолчальным именем и с процедурой на загрузке формы
а... ну да...
end function | |
| |
| |
| |
автор: ?????? (30.11.-1 в 00:00) |
|
| |
to: Explorer
(30.11.-1 в 00:00)
| | | Re[1]: мне надо вставить процедуру во вновь созданную форму во! то, что нужно :) Спасибо! | |
| |
| |