Błąd wykonania programu Microsoft Access 2455 podczas próby uzyskania dostępu do formularzy wnuków z formularza podrzędnego
Mam trzy formy w bazie danych Access 2003 (rozwijającej się w programie Access 2007), które znajdują się w relacji rodzic -> dziecko -> wnuk. W podformacji „Form_Load” formularza podrzędnego ustawiam niektóre właściwości wnuka (tworząc nagłówek, źródło wiersza i logikę sterowania). Kiedy przeglądam formularz podrzędny, wszystko działa prawidłowo. Gdy przeglądam formularz nadrzędny, pojawia się błąd:
Błąd czasu wykonywania „2455”: Wprowadzono wyrażenie, które ma nieprawidłowe odwołanie do właściwości Formularz / raport.
w odniesieniu do linii:
<code>Me.GrandchildFormName.Form.Foo.Caption = "bar" </code>
Mogę uzyskać dostęp do każdej właściwości wnukaz wyjątkiem właściwość Formularz bez wyrzucania błędów. Czy ktoś wie, co może to powodować? Zrobiłem przypadek testowy w nowej bazie danych i działał on dobrze, więc skłaniam się ku temu, aby istniało coś w starszym kodzie, który odziedziczyłem po bazie danych (co, jak mi powiedziano, sięga 18 lat do wstępnego dostępu system bazy danych), który powoduje problem, ale pomyślałem, że sprawdzę tutaj, czy któryś z was może znać obejście.
Jeśli jest to istotne, rzeczywista struktura formularzy jest nieco bardziej skomplikowana, ponieważ formularz wnuka pojawia się wiele razy (pod różnymi nazwami kontrolnymi) w formularzu potomnym, tak jak poniżej:
<code>|--------------| | A | | |----------|| | | B || | | |------||| | | | C[1] ||| | | |------||| | | || | | |------||| | | | C[2] ||| | | |------||| | |----------|| |--------------| </code>
Wyeliminowanie wszystkich formularzy wnuków z wyjątkiem jednej nie rozwiązuje problemu.
Mógłbym prawdopodobnie napisać kod, aby obejść ten problem, gdyby istniał sposób, aby formularz wnuka wiedział, które z instancji jest ładowany jako, ale o ile mi wiadomo, nie jest to możliwe.