我在Access 2003數據庫(在Access 2007中開發)中有三種形式,它們位於父 - >子 - >子孫關係中。在子窗體的'Form_Load'子項中,我設置了孫子的一些屬性(表單標題,行源和控制邏輯)。當我查看子窗體時,一切正常。當我查看父窗體,我得到的錯誤:當試圖從子窗體訪問孫子窗體時,Microsoft Access運行時錯誤2455
Run-time error '2455': You entered an expression that has an invalid reference to the property Form/Report.
在參考線:
Me.GrandchildFormName.Form.Foo.Caption = "bar"
我可以不拋出任何訪問孫子形式的任何財產,除了窗體屬性錯誤。有誰知道可能是什麼原因造成的?我在一個新的數據庫中做了一個測試用例,它工作的很好,所以我傾向於用遺留的代碼繼承數據庫中的某些東西(據我所知,它可以追溯到18年前的Access數據庫系統)導致的問題,但我想我會在這裏檢查,看看你們中的任何一個人是否可能知道解決方法。
如果是相關的,這些形式的實際結構是一個比較複雜,出現多次的孫子形式(在不同的控制名稱)子窗體,像這樣:
|--------------|
| A |
| |----------||
| | B ||
| | |------|||
| | | C[1] |||
| | |------|||
| | ||
| | |------|||
| | | C[2] |||
| | |------|||
| |----------||
|--------------|
消除所有但其中一個孫子形式不能解決問題。
我大概可以編寫代碼來解決這個問題,如果有一種方法讓孫表單知道它正在被加載的實例,但據我所知,這是不可能的。
你能解釋一下嗎? – jeremy
這隻適用於非常特殊的情況下,這似乎不是OP的問題的一般根源情況。 – PhilS