(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Передача параметров между формами

Передача параметров между формами может осуществлятся в двух направлениях.

· Родительская(вызывающая) -> Дочерняя(вызываемая)  
 
· Дочерняя -> Родительская  
 
   

В любом случае можно передавать параметры через глобальные переменные обьявленные в стандартном модуле.

Модули не являющиеся специфическими для конкретной формы или отчета, называются стандартными модулями.

Пример обьявления глобальной переменной.
Public strVariableName As String

После обьявления такой переменной можно получить или изменить её значение в любом месте где используется VBA.
Можно задать её значение в одной форме, затем изменить в другой, прочитать в третьей и.т.д.

Варианты передачи параметров Родительская -> Дочерняя

1)Передача одного параметра через метод OpenForm обьекта DoCmd

DoCmd.OpenForm имяФормы [, режим ] [, имяФайла ] [, условиеWhere ] [, режимДанных ] [, режимОкна ] [, аргументыОткрытия ]

В данной строке нас интересует аргумент [ аргументыОткрытия ]

Строковое выражение, определяющее значение свойства формы OpenArgs. В дальнейшем это значение может быть использовано в программе в модуле формы, например, в процедуре обработки события Открытие (Open).

Пример передачи значения в вызываемую форму
Private Sub Command1_Click()
DoCmd.OpenForm "MyForm2", , , , , , "привет"
End Sub

В вызываемой форме значение можно получить из свойства OpenArgs формы
Private Sub Form_Open(Cancel As Integer)
MsgBox Me.OpenArgs
End Sub

Для передачи нескольких аргументов можно воспользоваться функцией GetArgument

Варианты передачи параметров Дочерняя -> Родительская

1)Непосредственная передача в элементы родительской формы

В любую открытую форму можно передать значение просто сославшись на элемент этой формы
Forms![MyForm]![txtMy] = "Привет"

Такие ссылки легко создаются в Expression Builder (правда в редакторе кода в 2000 - 2002 отсутствует вызов Expression Builder)

2)Передача значений через создание пользовательских свойств

В модулях форм есть возможность создавать пользовательские свойства которые идентичны собственным свойствам формы.
В приведенном ниже коде создается пользовательское свойство MyProperties
Option Compare Database
Option Explicit
Private strMyProperties As String

'код для заполнения пользовательского свойства
Public Property Let MyProperties(ByVal vNewValue As Variant)
strMyProperties = vNewValue
End Property
'код для возврата значения пользовательского свойства
Public Property Get MyProperties() As Variand
MyProperties = strMyProperties
End Property

Получив ссылку на это свойство можно заполнить его из любой формы и полученное значение использовать по своему усмотрению.
Form_MyForm.MyProperties = varValue

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 26.12.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft 365 Business Basic (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Новые материалы
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100