Как мне ссылаться на форму с глобальной переменной внутри Subforms и делать вещи с ней?

Ответ Luper намного лучше, чем этот, но для полноты ...

Ужасный «старый стиль» синтаксис - это анахронизм из мира C++ - просто посмотрите на синтаксис, с которым эти парни должны работать! Yucky ...

0
задан Unhandled Exception 18 January 2019 в 08:09
поделиться

1 ответ

Как вы сказали нам сейчас, формы Form1 и Form2 находятся в подчиненных элементах управления страницами управления регистрами.

Таким образом, вы не можете ссылаться на них Forms("Form2"), потому что они не являются «самостоятельными» формами.

Вместо этого вы должны знать имя каждого элемента управления подчиненной формы , который содержит такую ​​подчиненную форму. Имя формы, которая хранится в каждом из этих элементов управления, не имеет значения вообще.

Поэтому я предлагаю вам присвоить этим элементам управления подчиненной формы то же имя, что и содержащей странице, но добавить статический суффикс, например SubFormControl (или любой другой суффикс, который вам нравится).

Так, например, элемент управления подчиненной формы, который находится на странице pgeVerbMassnahmen, должен называться pgeVerbMassnahmenSubFormControl.

Затем вы можете ссылаться на элементы управления подчиненной формы по имени страницы и статическому суффиксу.

Так что я думаю, что это то, что вам нужно:

Объявите переменную формы в Form_GUI (если вы просто ссылаетесь на переменную из кода внутри Form_GUI, она может быть закрытой): [ 1122]

Private p_FrmZuordnung As Form

Я ожидаю, что p_ErmittleFrmZuordnung также находится в форме Form_GUI, поэтому вы можете использовать Me для ссылки на Form_GUI:

Private Sub p_ErmittleFrmZuordnung()
    Const SUFFIX As String = "SubFormControl"

    Dim currentPagename As String
    currentPagename = Me("RegisterStr1").Pages(Me("RegisterStr1").Value).Name

    Select Case currentPagename
        Case "pgeVerbMassnahmen"
            Set p_FrmZuordnung = Me(currentPagename & SUFFIX).Form
        Case "pgeKVPMassnahmen"
            Set p_FrmZuordnung = Me(currentPagename & SUFFIX).Form
        Case Else
            p_FrmZuordnung = Nothing
    End Select
End Sub

Редактировать:

]

Если все страницы содержат элемент управления подчиненной формы, его можно сократить:

Private Sub p_ErmittleFrmZuordnung()
    Const SUFFIX As String = "SubFormControl"

    Set p_FrmZuordnung = Me(Me("RegisterStr1").Pages(Me("RegisterStr1").Value).Name & SUFFIX).Form
End Sub
0
ответ дан Unhandled Exception 18 January 2019 в 08:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: