在过去的几天里,我一直在努力找出这个问题的根源。我在 Internet 上搜索导致此问题的原因并没有结果。
这是一个使用 Access 作为前端 UI 的程序,用户可以将客户端信息输入到托管在 SQL Server 上的数据库中。
交互应该如下:
- 用户单击主窗体中的客户列表
- 帐户列表显示在主窗体中
- 用户点击一个帐户
- 产品列表以表格形式显示(用于更新/添加新产品)
- 用户选择其中一种产品
- 相应的每月产品值显示在另一个子窗体上(不在产品列表子窗体下)
初始加载主窗体时,每月产品值过滤器值默认为 0。选择其中一种产品时,应动态更新过滤器。它是在产品表单的 Form_Current 事件下完成的。
我想不通的是:过滤器似乎停留在默认状态。我使用 Debug.Print 语句检查每月产品值表单的最新过滤器值,它显示了过滤器的正确产品 ID。但它根本没有在 UI 上更新。
更奇怪的是:当我更改 vba 代码(有时与过滤器无关)并在应用程序模式下保存它时,它会起作用(即列出每月值),例如:
.filter = "prod_id = " & iProdID
到
.filter = "[prod_id] = " & iProdID
但是当我将其更改为设计模式并开始进行与此问题无关的更改时,它再次处于应用程序模式时停止工作。这种行为是如此不可预测,以至于我不知道如何进行。我什至删除了表单并重新创建它,它的行为仍然相似。
我正在使用相同的方式在 VBA 中为其他子表单处理文件管理器,并且它们的行为正确。希望得到一些关于我忽略的反馈!
谢谢!基亚特