Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Обновление полей подчиненных форм

19 views
Skip to first unread message

Юрий Петров

unread,
Nov 24, 2006, 4:34:10 AM11/24/06
to
Привет, All!
access2002
На свободной форме находятся две подформы: пФорма1 и пФорма2. При
перемещении по записям пФормы1 должно обновляться содержимое пФормы2.
Одно из полей пФормы2 - поле со списком - полеLB, список которого тоже
должен обновляться при перемещении по записям пФормы1. Для этого в
свойстве Form_Current (Текущая запись) пФормы1 пишем:

Me.Parent!пФорма2.Requery ' обновили содержимое пФормы2
Me.Parent!пФорма2!полеLB.Requery ' обновили содержимое списка поляLB

Так вот, первая команда выполняется отлично, а вторая ругается:
"Введенное выражение содержит недопустимую ссылку на свойство
Form/Report".

Выполнение команды:
Me.Parent!пФорма2.Form!полеLB.Requery
дает тот же результат.

Что делать?
Или как можно иначе обновить содержимое списка поляLB?

Всего наилучшего, Юрий Петров!

Andrew Usachov

unread,
Nov 24, 2006, 7:13:06 PM11/24/06
to
╔═[■]════════════════════════[ Hello Юрий! ]═══════─────────--─--─-
│ 24 Nov 06 12:34, Юрий Петров wrote to All:

ЮП> Что делать?
ЮП> Или как можно иначе обновить содержимое списка поляLB?

У меня подобное работает.

╚═[ Andrew Usachov ]═══════════════[ 25 Nov 06, 03:13 ]══───-─-

Nick Zykow

unread,
Nov 24, 2006, 5:45:54 PM11/24/06
to
Hello Юрий!

Fri Nov 24 2006 12:34, Юрий Петров wrote to All:
ЮП> Выполнение команды:
ЮП> Me.Parent!пФорма2.Form!полеLB.Requery
ЮП> дает тот же результат.
Можно попробовать объявить Public Sub UpdateMyField в модуле пФорма2,
выполняющую нужное обновление и вызывать Me.Parent!пФорма2.Form.UpdateMyField

Пью за мир, за гуманизм и за трезвость всей Земли.
Old Nick [TEAM: None]

Юрий Петров

unread,
Nov 27, 2006, 7:04:24 AM11/27/06
to
Привет, Andrew Usachov!
Andrew Usachov пишет:

> ЮП> Что делать?
> ЮП> Или как можно иначе обновить содержимое списка поляLB?
>
> У меня подобное работает.

Если не сложно, намыль это самое подобное на
asu_p...@obl.vn.energy.gov.ua. Что не так делаю, не понимаю.
Заранее, спасибо!

Всего наилучшего, Юрий Петров!

Юрий Петров

unread,
Nov 27, 2006, 7:14:01 AM11/27/06
to
Привет, Nick Zykow!
Nick Zykow пишет:

> ЮП> Выполнение команды:
> ЮП> Me.Parent!пФорма2.Form!полеLB.Requery
> ЮП> дает тот же результат.
> Можно попробовать объявить Public Sub UpdateMyField в модуле
> пФорма2, выполняющую нужное обновление и вызывать
> Me.Parent!пФорма2.Form.UpdateMyField

Результат тот же. Создается впечатление, что access противна сама
идея слова Form после имени пФормы2, т.е. в контексте пФормы1 доступны
только свойства и методы всей пФормы2. Родные. Потому что подобный
public sub не захотел вообще запускаться даже при отсутствии
каких-либо в нем команд. И запустился только когда я его кинул в
модуль родителя - свободной формы. Но стоило мне в нем дать команду
Me.пФорма2.Form.полеLB.Requery, как пошла таже ругань.

Что интересно, отчасти помогло использование макроса, который я
повесил вместо кода VBA на свойство Form_Current пФормы1, в котором
три команды:
КЭлементуУправления ' в параметре - "пФорма2"
Обновление ' без параметров
Обновление ' в параметре - "полеLB"

Работает на ура. Но с двумя недостатками. При стартовом открытии
родителя ругань на третью команду, и потом каждый раз при перемещении
по пФорме1, фокус перемещается на пФорму2, а возвращать его не знаю
куда, т.к. есть на свободной форме еще одна пФорма0, при перемещении
по которой меняется содержимое пФормы1.

В общем мне это не понравилось и пришло другое решение: повесить
команду Me.пФорма2.Form.полеLB.Requery на свойство пФорма2_Enter в
модуле родителя - свободной формы. Благо, что полеLB в форме пФорма2
содержит само значение из списка, а не код. И потом, обновление теперь
происходит только при входе в пФорму2, а не каждый раз при перемещении
по пФорме1. Но если бы полеLB было кодом, не знал бы, что и делать.

Всего наилучшего, Юрий Петров!


Andrew Usachov

unread,
Nov 27, 2006, 11:24:02 AM11/27/06
to
╔═[■]════════════════════════[ Hello Юрий! ]═══════─────────--─--─-
│ 27 Nov 06 15:04, Юрий Петров wrote to Andrew Usachov:

>> ЮП> Что делать?
>> ЮП> Или как можно иначе обновить содержимое списка поляLB?
>>
>> У меня подобное работает.

ЮП> Если не сложно, намыль это самое подобное на
ЮП> asu_p...@obl.vn.energy.gov.ua. Что не так делаю, не понимаю.

Забирай сhttp://usa.rota.lv/misc/db1.mdb

╚═[ Andrew Usachov ]═══════════════[ 27 Nov 06, 19:24 ]══───-─-

Valera

unread,
Nov 28, 2006, 6:37:07 AM11/28/06
to
Привет!
"Юрий Петров" <asu_p...@obl.vn.energy.gov.ua> wrote in message
news:ek6ctr$2pon$1...@news.kiev.sovam.com...

> Привет, All!
> access2002
> На свободной форме находятся две подформы: пФорма1 и пФорма2. При
> перемещении по записям пФормы1 должно обновляться содержимое пФормы2.
> Одно из полей пФормы2 - поле со списком - полеLB, список которого тоже
> должен обновляться при перемещении по записям пФормы1. Для этого в
> свойстве Form_Current (Текущая запись) пФормы1 пишем:
>
> Me.Parent!пФорма2.Requery ' обновили содержимое пФормы2
> Me.Parent!пФорма2!полеLB.Requery ' обновили содержимое списка поляLB
>
> Так вот, первая команда выполняется отлично, а вторая ругается:
> "Введенное выражение содержит недопустимую ссылку на свойство
> Form/Report".
А ошибка возникает только при открытии формы или же и при переходе по
записям?
Если только при открытии, то причина в том, что форма пФорма2 находится
"перед"
пФормы1. И поэтому рисуется позже пФормы1. Что бы она рисовалась раньше надо
поместить
ее назад.
А еще - что бы понять, что не так в синтаксисе, то я бы попробовал в
режиме останова
раскрутить Me и дойти до полеLB
>
> Всего наилучшего, Юрий Петров!
Валера


Юрий Петров

unread,
Nov 29, 2006, 2:38:06 AM11/29/06
to
Привет, Valera!
Valera пишет:

>> Me.Parent!пФорма2.Requery ' обновили содержимое пФормы2
>> Me.Parent!пФорма2!полеLB.Requery ' обновили содержимое списка
>> поляLB
>>
>> Так вот, первая команда выполняется отлично, а вторая ругается:
>> "Введенное выражение содержит недопустимую ссылку на свойство
>> Form/Report".
> А ошибка возникает только при открытии формы или же и при переходе
> по записям? Если только при открытии, то причина в том, что форма
> пФорма2 находится "перед" пФормы1. И поэтому рисуется позже пФормы1.
> Что бы она рисовалась раньше надо поместить ее назад.

У-р-р-а! Помогло, как только поместил пФорму2 на задний план.
Спасибо!

Даже смог заставить работать с ошибкой db1.mdb, взятый у Андрея :)
Спасибо всем ответившим.

Всего наилучшего, Юрий Петров!

0 new messages