Ответ Luper намного лучше, чем этот, но для полноты ...
Ужасный «старый стиль» синтаксис - это анахронизм из мира C++
- просто посмотрите на синтаксис, с которым эти парни должны работать! Yucky ...
Как вы сказали нам сейчас, формы 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