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



    
rambler's top100 Rambler's Top100