簡體   English   中英

MS Access(2010)VBA篩選器不適用於一個子窗體

[英]MS Access (2010) VBA filter not working on one subform

在過去的幾天里,我一直在努力尋找問題的根源。 我的Internet搜索導致此問題的原因並沒有取得成功。

該程序使用Access作為前端UI,以便用戶將客戶端信息輸入到SQL Server上托管的數據庫中。

交互作用應如下所示:

  • 用戶單擊主要形式的客戶清單
  • 帳戶清單以主要形式顯示
  • 用戶點擊一個賬戶
  • 產品列表以表格子形式顯示(用於更新/添加新產品)
  • 用戶選擇其中一種產品
  • 相應的每月產品值顯示在另一個子窗體上(不在“產品列表”子窗體下)

最初加載主表單時,默認情況下每月產品值過濾器值為0。 選擇其中一種產品時,應動態更新過濾器。 這是在產品表單的Form_Current事件下完成的。

我不知道的是:篩選器似乎卡在默認狀態。 我使用Debug.Print語句檢查了每月產品價值表單的最新過濾器值,它顯示了該過濾器的正確產品ID。 但是它根本沒有在用戶界面上更新。

更奇怪的是:它在我更改了vba代碼(有時與過濾器無關)的某個時候起作用(即列出了每月值),並在處於應用程序模式時保存了它,例如:

.filter = "prod_id = " & iProdID

.filter = "[prod_id] = " & iProdID

但是,當我將其更改為“設計”模式並開始進行與此問題無關的更改時,當它再次處於“應用程序”模式時,它停止工作。 行為是如此不可預測,以至於我不確定如何進行。 我什至刪除了表單,然后再次重新創建它,其行為依舊相似。

我使用相同的方法在VBA中處理其他子表單的文件管理器,並且它們的行為正確。 希望得到一些我忽略的反饋!

謝謝! at

我現在開始工作了。 為產品值分配過濾器的原始方法是,將過濾器值直接從“產品”表單( Form_Products )的Form_Current事件分配給“產品值”表單( Form_ProductVals )。 這導致結果不一致。

現在,我更改了代碼,以通過“客戶”主窗體(包含“產品”和“ ProductVals”子窗體)分配過濾器值。 因此代碼從以下更改:

Form_ProductVals.Form.Filter = "prod_id = " & <new ID>

Form_Clients.ProductVals.Form.Filter = "prod_id = " & <new ID>

這樣就可以了。 不過,我沒有任何區別的解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM