【问题标题】:MS Access Form Not Filtering On LoadMS Access 表单在加载时未过滤
【发布时间】:2017-11-28 15:10:44
【问题描述】:

我有一个列出多个请求的表单。当有人单击请求 ID 时,它会打开一个审核表单,关闭列表表单。个人填写审核表单并更改状态,然后单击按钮关闭当前表单并再次打开列表表单。

当列表表单再次打开时,我希望它仅过滤那些在加载时提交或重新提交的请求。在审核表单中进行审核时,状态将更改为待处理。表单关闭并打开列表表单,显示状态为待处理。我不想要这个,我不想要任何 Pending 显示,只有 Submitted 或 Re-Submitted。

这是我正在使用的 VBA 代码,但在加载表单时它不起作用。

Private Sub Form_Load()
DoCmd.SetOrderBy "RequestID ASC"
Dim strFilter As String
strFilter = "[RequestStatus] IN ('Submitted', 'Re-Submitted')"
Me.Filter = strFilter
Me.FilterOn = True
End Sub

【问题讨论】:

  • 您可能最好调整打开表单的 VBA,而不是这个 Form_Load 部分。可以分享一下吗?
  • 其实是一个打开表单的基本宏(OpenForm: frmAdminListToDo, View: Form, Window Mode: Normal。然后是CloseWindow Macro(对象类型:Form,对象名称:frmReviews,保存:是。
  • 好吧,我的观点是,OpenForm 宏操作有一个 Where condition 部分
  • 那么在Where条件中添加过滤器?
  • 是的,没错

标签: ms-access vba ms-access-2010


【解决方案1】:

您可能想要执行 Me.Requery -- 我想知道接收表单中的源记录集是否已过时。

【讨论】:

  • Me.Requery 在表单加载时不起作用。如何检查接收表单中的源记录集是否过时?
  • 哦,好点 - 这是一个加载表单。长镜头,但有时 MS Access 对数据更改的反应很慢。我已经看到它发生了。不过,并不是说这里就是这种情况。万一出现问题,请对此进行测试——在表单中添加一个按钮,然后在单击事件上执行 Me.Requery。如果数据出现了,但没有出现在 Load 事件上,那就是原因。如果即使单击按钮也没有显示,则在单击按钮期间暂停代码并查看记录源、过滤器属性和 FilterOn 属性后面的 SQL。那时你应该会找到确凿的证据。
猜你喜欢
  • 2020-03-25
  • 1970-01-01
  • 2013-12-29
  • 2023-03-19
  • 2015-05-27
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多