Как установить новую форму для подчиненной формы в подчиненной форме?[ACCDB] - PullRequest
0 голосов
/ 01 февраля 2019

Итак, я изменил наше приложение с «mbd» на «accdb», и некоторые объявления не работают так, как они должны.

Эта строка кода работает наФайл 'mbd', но его нет в 'accdb'

Dim subformachart As Form
Set subformachart = Form![subChart].Form!subChartSpace.Form

, где:

  • form -> основная форма
  • subChart ->это первая подчиненная форма
  • subChartSpace -> это вторая подчиненная форма

Это то, что я пробовал после исследования некоторой документации, но она не работает (также документация всегда быларечь идет об элементах управления и других свойствах, но не о уместности .Form)

Dim subformachart As Form
Set subformachart = Me!subChart.Form!subChartSpace.Form

This doesn't work.

Кроме того, если я хочу получить доступ только к первой подчиненной форме, как в

Set subformachart = Me!subChart.Form

, она работает просто отлично, но я не могу найти способ доступа ко 2-й подчиненной форме, как в примере mbd.

1 Ответ

0 голосов
/ 01 февраля 2019

Может быть, вы смешиваете subform control name и form name или, возможно, это проблема с областью действия кода?

Я проверил следующее созвездие:

  • Основная формаfrmMain содержит элемент управления подчиненной формы с именем subChart, содержащий форму с именем frmSub.
  • Форма sub frmSub содержит элемент управления подчиненной формы с именем subChartSpace, содержащий форму с именем frmSubSub.
  • Подвид формы с именем frmSubSub.

Следующий код, помещенный в процедуру onclick кнопки на frmMain, хорошо выполняется:

'Using Me:
MsgBox Me.subChart.Form.subChartSpace.Form.Name

'Using Form:
MsgBox Form.subChart.Form.subChartSpace.Form.Name

'Set the form in a local variable, using your syntax example:
Dim subformachart As Form
Set subformachart = Form![subChart].Form!subChartSpace.Form
MsgBox subformachart.Name

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

MsgBox Forms("frmMain").subChart.Form.subChartSpace.Form.Name

Я могу 'не вижу никакой другой причины вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...