[英]Microsoft Access Where Condition doesn't works in a subform
我把宏放在哪里條件單擊:
=“ IDclient_logindata =”&[Maschere]![clientlist]![IDclient]
這意味着當我單擊一個id客戶端時,訪問權限將使用相應的IDclient打開另一個表單。 例如,如果我單擊IDclient 3:
它打開另一個名為“ client_logindata”的表單以過濾IDclient_logindata3。然后,我構建了一個導航表單: 使用clientlist作為子表單。 但是,當我單擊一條記錄(任何記錄)時,每次在ID_client_logindata form = 1的client_logindata表單中打開它,為什么它不能在子表單中工作? “導航表格”的設計視圖:
通過這種方式解決:=“ IDclient_logindata =”&[IDclient]
使用子窗體時, 對控件的引用必須相對於將子窗體視為子控件的主窗體。
考慮將條件調整為以下結構。 請注意,這是英文版本:
="IDclient_logindata=" & Forms!myMainForm!mySubform.Form!mySubformControl
或專門為您量身定做(請確保所有對象的拼寫正確):
="IDclient_logindata=" & Forms!NavigationForm!clientlist.Form!IDclient
OP找到了一個可行的解決方案,它比隨后的解決方案簡單得多。 但是,我仍然很想知道我們是否可以在原始模型上使用某些功能,並且我猜想對於嘗試使用VBA而不是嵌入式宏的用戶來說,以下內容可能仍然有用。
原始問題中的代碼存在問題,即相關表單不是在“頂層”打開,而是作為子表單打開。
表單“普通”子表單,您可以像下面這樣引用子表單上的控件:
Forms!navform!clientlist.form!IDclient
其中navform
是外部表單的名稱。 或在一般情況下,如下所示:
Forms!Mainform!Subform1.Form!ControlName
但是,將“子窗體”拖到“ 布局”視圖中的“ 添加新”選項卡上時,“導航窗體”向導不能很好地命名子窗體。 所以我不得不這樣編碼:
Forms![Navigation Form]!NavigationSubform.Form!ControlName
令我驚訝的是,當我在“導航表單”選項卡中添加更多表單並且控件的名稱與所討論的表單相同時,此代碼繼續起作用。 我猜想NavigationSubform
自動指向當前焦點所在的選項卡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.