MS Access 2007 Преобразование форм в вложенную форму - проблема «форма не найдена» - PullRequest
0 голосов
/ 21 июля 2010

Так что я недавно пытался включить больше подформ, чтобы сделать интерфейс более дружелюбным.Итак, у меня есть предварительно разработанная форма, которая запускает некоторый VB, поэтому для примера скажем, что он запускает оператор SQL, возвращает набор записей и заполняет текстовые поля данными (потому что это своего рода концепция интерактивной панели:

dim db as database
dim rs as recordset
dim sql as string
set db = current db

sql = "SELECT * FROM tblMain;"

   set rs = db.OpenRecordSet(sql)

         rs.movefirst
             [forms]![DashboardSubName].txtValue1 = rs!Value1
         rs.close

 set rs = nothing
 set db = nothing

с обработкой ошибок, которая возвращает ошибку "DashboardSubName" не найдена. Поэтому изначально эта форма была своей собственной формой, и, открывая ее самостоятельно, она работает нормально, но как только я использую ее в родительской форме, я получаю эту ошибку.

я уверен, что это просто то, чего я не знаю, но что дает?

спасибо, ребята, Джастин

Ответы [ 3 ]

3 голосов
/ 21 июля 2010

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

Таким образом, правильная ссылка должна быть: Me! DashboardSubName.Form.txtValue1

где DashboardSubName - имя элемента управления формы.

1 голос
/ 21 июля 2010

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

  Me!MySubformControl

... - это элемент управления подчиненной формы.

  Me!MySubformControl.Form

... - это форма, встроенная в элемент управления подчиненной формы.

Наконец, мне действительно интересно, почему вы 'повторяю набор записей для обновления данных в подчиненной форме.Это не нормальная практика, хотя она касается вашего реального вопроса.

1 голос
/ 21 июля 2010

Предполагая, что код, который вы нам показали, является частью подчиненной формы, а не родительской формы, замените

[forms]![DashboardSubName].txtValue1 = rs!Value1

на

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