繁体   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