Передача параметрів між формами, MS Office, Програмні керівництва, статті

Передача параметрів між формами може здійснюватись в двох напрямках.






· Батьківська (викликає) -> Дочірня (викликається)
 





· Дочірня -> Батьківська
 





   

У будь-якому випадку можна передавати параметри через глобальні змінні оголошення в стандартному модулі.

Модулі не є специфічними для конкретної форми або звіту, називаються стандартними модулями.

Приклад оголошення глобальної змінної.
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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*