Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Ситуация следующая:
Я воял ленточную форму "frmKI_PKI",
все события в модуле VBA писались соответственно в модуле формы.
Теперь эту форму я накинул на новую форму "frmKI_PKI_Main" имя подчиненной формы/отчета frmKI_PKIPODCH.
Новую форму "frmKI_PKI_Main" я накинул еще и на вкладку набора вкладок "InsFORM" которая в свою очередь располагается на главной форме MainForm.
Теперь при выполнении техже операций (нажатии кнопок и т.д.) у меня компилятор ругается на наименование объектов.
Например,в ленточной форме было событие добавления записи которое работало:
With Forms("frmKI_PKI")
!TipPKI = Me.cboShifrPKI
!NaimenovPKI = naimenPKI
!Sistema = NaimenSistemi
.......
.......
.......
End with
Но теперь на строке With Forms("frmKI_PKI") выдается ошибка ПРИЛОЖЕНИЕ НЕ УДАЕТСЯ НАЙТИ
ФОРМУ frmKI_PKI".Подскажите пожалуйста правильный синтаксис обращения
Давно уже с этим парюсь 😢
27 дек 19, 14:32    [22050161]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4601
drafty, https://www.sql.ru/faq/faq_topic.aspx?fid=156
27 дек 19, 16:42    [22050357]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 445
Где находятся кнопки?
А, в принципе, полный путь к субформе извне:
Forms!MainForm!frmKI_PKI_Main.Form!frmKI_PKI.Form

Из модуля MainForm:
Me!frmKI_PKI_Main.Form!frmKI_PKI.Form
27 дек 19, 17:23    [22050399]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Кривцов Анатолий
Где находятся кнопки?
А, в принципе, полный путь к субформе извне:
Forms!MainForm!frmKI_PKI_Main.Form!frmKI_PKI.Form

Из модуля MainForm:
Me!frmKI_PKI_Main.Form!frmKI_PKI.Form

Благодарю за помощь, завтра протестирую-отпишусь.
27 дек 19, 17:35    [22050419]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Панург
drafty, https://www.sql.ru/faq/faq_topic.aspx?fid=156

Премного благодарен
27 дек 19, 17:38    [22050422]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Кривцов Анатолий
Где находятся кнопки?
А, в принципе, полный путь к субформе извне:
Forms!MainForm!frmKI_PKI_Main.Form!frmKI_PKI.Form

Из модуля MainForm:
Me!frmKI_PKI_Main.Form!frmKI_PKI.Form

Нет,все равно выдаётся сообщение о том,что приложению не удается найти указанную форму.
Строка выглядит так:
With Forms (""Forms!MainForm!frmKI_PKI_Main.Form!frmKI_PKI.Form")
28 дек 19, 08:39    [22050649]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Лапух
Member

Откуда: Стойбище № 7
Сообщений: 1016
drafty
With Forms (""Forms!Main...

Сразу бросилось в зоркий глаз Картинка с другого сайта.
2 раза - Forms
2 раза - Двойные кавычки перед открывающей скобкой.
В где то в тут зырить нужно.
28 дек 19, 09:33    [22050658]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Вообщем матрешка такая:
На простую форму "frmKomplektIzdeliya" я внедряю ленточную форму "frmKI_PKI" (имя подчиненной задаю "frmKI_PKIonMain").
После этого,простую форму "frmKomplektIzdeliya" я внедряю на главную MainForm (имя подчиненной задаю "frmKomplektIzdeliyaonMain").
Вот так работает нормально:
With Forms!MainForm.frmKomplektIzdeliyaonMain.Form.frmKI_PKIonMain
!TipPKI = Me.cboShifrPKI
!NaimenovPKI = naimenPKI
..........
..........
..........
End With
Хочу обратить внимание на тот факт,что при обращении к контролам подчиненной формы или самой подчиненной форме
мы ссылаемся не на оригинальные имена форм, как мы их вояли изначально,а на имена ПОДЧИНЕННЫХ ФОРМ (что мы задавали мастеру) в которых
мы облекали наши подчиненные формы...
Т.е. форма, которую я хотел внедрить на MainForm называлась frmKomplektIzdeliya например,
а во время внедрения я задал ей название frmKomplektIzdeliyaonMain.Таким образом,при обращении к контролу подчиненной
формы будет надо написать следующее:
Forms!MainForm.frmKomplektIzdeliyaonMain.form.frmKI_PKIonMain.Controls("ИмяКотнрола")
Это - самая главная "фишка" при обращении к объектам вложенных форм!
28 дек 19, 10:28    [22050673]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
drafty
Вообщем матрешка такая:
На простую форму "frmKomplektIzdeliya" я внедряю ленточную форму "frmKI_PKI" (имя подчиненной задаю "frmKI_PKIonMain").
После этого,простую форму "frmKomplektIzdeliya" я внедряю на главную MainForm (имя подчиненной задаю "frmKomplektIzdeliyaonMain").
Вот так работает нормально:
With Forms!MainForm.frmKomplektIzdeliyaonMain.Form.frmKI_PKIonMain
!TipPKI = Me.cboShifrPKI
!NaimenovPKI = naimenPKI
..........
..........
..........
End With
Хочу обратить внимание на тот факт,что при обращении к контролам подчиненной формы или самой подчиненной форме мы ссылаемся не на оригинальные имена форм, как мы их вояли изначально,а на имена ПОДЧИНЕННЫХ ФОРМ (что мы задавали мастеру) в которых
мы облекали наши подчиненные формы...
Т.е. форма, которую я хотел внедрить на MainForm называлась frmKomplektIzdeliya например,
а во время внедрения я задал ей название frmKomplektIzdeliyaonMain.Таким образом,при обращении к контролу подчиненной
формы будет надо написать следующее:
Forms!MainForm.frmKomplektIzdeliyaonMain.form.frmKI_PKIonMain.Controls("ИмяКотнрола")
Это - самая главная "фишка" при обращении к объектам вложенных форм!

А самый прикол в том,чтобы задать рекордсоурс этой же форме,надо написать следующую строку:
Forms!MainForm.frmKomplektIzdeliyaonMain.Form.frmKI_PKIonMain.Form.Recordsource="Select ...."
Офигеть, закономерности нет, только метод "интуитивного тыка"
28 дек 19, 11:27    [22050684]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 931
drafty
...
Офигеть, закономерности нет, ...

Закономерность есть,
а базовых знаний у некоторых экспериментаторов нет.
:)
28 дек 19, 11:54    [22050692]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6435
drafty

...Т.е. форма, которую я хотел внедрить на MainForm называлась frmKomplektIzdeliya например,а во время внедрения я задал ей название frmKomplektIzdeliyaonMain.
а еще в конструкторе таблиц надо задавать подписи полей,тогда через пол-годика не то что кто-то,а Вы и сами фиг разберетесь в коде
28 дек 19, 12:13    [22050699]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Predeclared и sdku,
...где же вы были такие ГРАМОТНЫЕ когда надо было дать ква-ква-квалифицированый ответ по теме топика? 🤔🤔🤔
28 дек 19, 12:35    [22050702]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 445
drafty, могу дать практический совет.
В модуле главной формы объявите переменную типа Form (например Dim sfrm As Form) и Form_Load выполните:
Set sfrm = Me!frmKomplektIzdeliyaonMain.Form.frmKI_PKIonMain.Form
Далее во всех обращениях к субформе используйте эту переменную.
Кроме того, если объявить переменную квк Dim WithEvents sfrm As Form, то в модуле главной формы можно обрабатывать и события субформы.
28 дек 19, 13:24    [22050719]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 931
drafty
...где же вы были такие ГРАМОТНЫЕ...

Панург дал достаточно квалифицированный ответ сутки назад,
нам надо было повторить, чтобы:
"Шутка, повторенная дважды, становится понятнее." ?
28 дек 19, 13:30    [22050723]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Кривцов Анатолий
drafty, могу дать практический совет.
В модуле главной формы объявите переменную типа Form (например Dim sfrm As Form) и Form_Load выполните:
Set sfrm = Me!frmKomplektIzdeliyaonMain.Form.frmKI_PKIonMain.Form
Далее во всех обращениях к субформе используйте эту переменную.
Кроме того, если объявить переменную квк Dim WithEvents sfrm As Form, то в модуле главной формы можно обрабатывать и события субформы.

Ценный совет,не спорю,меня давно интересовал факт объявления переменной типа Form, встречал его в кодах,но не понимал назначения практического применения данного метода
28 дек 19, 13:39    [22050728]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Predeclared
drafty
...где же вы были такие ГРАМОТНЫЕ...

Панург дал достаточно квалифицированный ответ сутки назад,
нам надо было повторить, чтобы:
"Шутка, повторенная дважды, становится понятнее." ?

Ну во-первых сообщение 22050702 было адресовано не Панургу,а во-вторых,в ссылке на хэлп (от Панурга) указан совсем другой синтаксис нежели приведенный мною выше в качестве решения...
28 дек 19, 13:48    [22050733]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Predeclared
drafty
...где же вы были такие ГРАМОТНЫЕ...

Панург дал достаточно квалифицированный ответ сутки назад,
нам надо было повторить, чтобы:
"Шутка, повторенная дважды, становится понятнее." ?


Вот синтаксис от хэлпа,что указан Панургом:
1)Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value
А вот что по факту получается:
2)Forms!MainForm.frmKomplektIzdeliyaonMain.form.frmKI_PKIonMain.Controls("ИмяКотнрола). Value
Есть разница???
28 дек 19, 14:36    [22050750]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 931
Рука-лицо!

Хелп писан для изучения вопроса,
а не для решения конкретной поделки конкретного мембера, спустя десяток/другой лет.

И, да: Рвать зубы через "известный" проход не очень удачное решение. :)
28 дек 19, 15:00    [22050763]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Predeclared
Рука-лицо!

Хелп писан для изучения вопроса,
а не для решения конкретной поделки конкретного мембера, спустя десяток/другой лет.

И, да: Рвать зубы через "известный" проход не очень удачное решение. :)

Разница в том,что у меня это выглядит так:
Forms![Форма1].[ПодчиненнаяФорманаФорме1].Form.[ПодчиненнаяФорманаПодчиненнойФорменаФорме1].Controls("ИмяКонтрола")
28 дек 19, 17:46    [22050822]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4601
drafty, синтаксис обращения к объекту везде выглядит одинаково в VBA. Вне зависимости от объекта - форма там, приложение или ещё чего.
То что ты написал не вполне канонично, но допустимо.
28 дек 19, 18:02    [22050830]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Панург
drafty, синтаксис обращения к объекту везде выглядит одинаково в VBA. Вне зависимости от объекта - форма там, приложение или ещё чего.
То что ты написал не вполне канонично, но допустимо.

Я в этом никогда не сомневался...Вот только в 22050750 я хотел подчеркнуть,что часто бывает так,что в хэлпе не полностью раскрыты некоторые нюансы (которые требуют разьясненений).
Вот например строка:
Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value
Теперь пойми блин,что подразумевается под выражением Форма2,толи ее оригинальное название,толи ее название которое она приобретает в качестве подчинённой формы.
Не спорю,тому,кто долго практикуется на этом-достаточно прочитать разъяснения,а тому кто только пытается отделить зерна от плевел-нужна однозначно истолковываемая нотация (или в моем понимании-мнемонический синтаксис)
28 дек 19, 18:39    [22050838]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 931
drafty
...
Вот например строка:
Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value
Теперь пойми блин,что подразумевается под выражением Форма2,толи ...


А перед ним слово Controls ни на какие мысли не наводит?

И до штатного F1 не дотянуться?
28 дек 19, 19:07    [22050843]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
drafty
Member

Откуда: Москва
Сообщений: 542
Predeclared
drafty
...
Вот например строка:
Forms![Форма1].Controls![Форма2].Form.Controls![Поле1].Value
Теперь пойми блин,что подразумевается под выражением Форма2,толи ...


А перед ним слово Controls ни на какие мысли не наводит?

И до штатного F1 не дотянуться?

Пользование хэлпом не должно НАВОДИТЬ на мысли,а должно давать исчерпывающую и однозначно трактуемую информацию (в идеале) независимо от квалификации специалиста практикующегося в данной предметной области.Поэтому люди иногда и пренебрегают "хэлпами" и предпочитают получить конкретный ответ,а их к сожалению-высмеивают
28 дек 19, 19:57    [22050852]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Predeclared
Member

Откуда: And God I know I'm one
Сообщений: 931
Ну-да, ну-да.

+
Подводя итоги нытия:
1. Системы в синтаксисе нет.
2. Злые мемберы не набрасываются писать разжеванные ответы через секунду после задания вопроса.
3. Местный фак писали недоумки, разжевать разжевали, да в рот не положили.
4. Штатный хелп вообще писали индусы, да исчо и на аглицком.
5. Фсе вокруг пи-сы, один я д'Артаньян.


Все это проходили на этом ресурсе и не раз.
28 дек 19, 20:59    [22050864]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4601
drafty
Пользование хэлпом не должно НАВОДИТЬ на мысли,а должно давать исчерпывающую и однозначно трактуемую информацию (в идеале) независимо от квалификации специалиста практикующегося в данной предметной области.Поэтому люди иногда и пренебрегают "хэлпами" и предпочитают получить конкретный ответ,а их к сожалению-высмеивают
Специалист должен прочесть весь хелп и/или понимать в каком месте обращаются к какому объекту
Forms -коллекция экземпляров форм проекта.
![Форма1] - получение конкретного экземпляра формы по имени. Это получается не всегда.
.Controls - получение коллекции контролов конкретного экземпляра формы.
![Форма2] - получение конкретного контрола SubForm коллекции контролов конкретного экземпляра формы.
.Form - получение содержимого свойства конкретного контрола SubForm коллекции контролов конкретного экземпляра подчиненной формы. Это форма.
.Controls - получение коллекции контролов конкретного экземпляра формы.
![Поле1] - получение конкретного контрола коллекции контролов.
.Value - получение значения свойства конкретного контрола.

drafty
Теперь пойми блин,что подразумевается под выражением Форма2,толи ее оригинальное название,толи ее название которое она приобретает в качестве подчинённой формы.
Мне кажется это не так и сложно. Матрёшка.

Сообщение было отредактировано: 28 дек 19, 21:40
28 дек 19, 21:36    [22050879]     Ответить | Цитировать Сообщить модератору
 Re: Как обращаться к элементам подчиненных форм?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4601
drafty
.Поэтому люди иногда и пренебрегают "хэлпами" и предпочитают получить конкретный ответ,а их к сожалению-высмеивают

Картинка с другого сайта.
28 дек 19, 21:44    [22050880]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Access Ответить