表单过滤器失败快速而且愤怒

时间:2016-11-30 21:35:59

标签: filter access-vba dao ms-access-2013

作为前驱,我是Access和Stackoverflow的新手,因此上下文,语句,措辞等中的任何错误都是纯粹无意的。我有一颗善良的心,良好的意图,并且意味着没有冒犯。

我的未分割的DAO 2013 Access数据库中有5个表单,它们都针对此特定问题使用相同的编码。在打开时,所有表单都将设置为打开一个新的空白记录。

当搜索客户记录并打开记录时,所有表单都有一个子表单容器,该容器是标签式的,包含客户的大部分记录信息。

在其中一个表单中,导航栏指出“没有过滤器"并在子表单容器中显示客户的记录信息。无论过滤器状态如何,客户记录信息都应显示,因此应该会发生这种情况。

在其中4个表单中,表单导航栏指出" Unfiltered"并且在子表单容器中不显示客户的记录信息。如果我单击表单底部的过滤器按钮(或功能区中的过滤器切换)两次,则第二次单击时将显示客户记录信息 - 表单将移至"过滤"然后再次" Unfiltered"。然后所有子表单在第二个" Unfiltered"中表现正常。状态。

当前在我的数据库中设置了-0-手动VBA过滤器(即me.customer.filter = false),用于查找记录的查询 - 所有内容都是使用VBA来查找记录。

数据库上线后,最终用户将无法使用过滤器控件。这是我最后的错误。我感谢您提出的任何建议或解决方案。

这些是我尝试的解决方案:

  • 使用Me.FilterOn = FalseMe.Filter = ""在打开时关闭4个受影响表单上的所有过滤器,但这会导致过滤器切换变为不可用,并且子表单容器不显示任何客户记录关于4种形式的信息

  • 使用Me.FilterOn = FalseMe.Filter = ""关闭当前4个受影响表单上的所有过滤器,但这导致过滤器切换变为不可用,子窗体容器不显示任何客户记录关于4种形式的信息

  • 使用上面的VBA在打开时关闭所有5个表单上的所有过滤器,这导致过滤器切换变为不可用,并且子表单容器不显示所有5个表单上的任何客户记录信息

  • 反编译,修复/压缩,并重建一次新数据库

  • 使用VBA强制在打开时发生未过滤/过滤/未过滤的状态,但子表格受到干扰,我的截止日期并没有时间让我有时间弄明白。

  • 尝试将所有内容都基于查询而不是表格,但由于这些子表单必须是可编辑的,并且查询必须是唯一的,因此这不是一个选项

  • 将一种形式与其他形式进行比较,看看哪种形式与开放/搜索时的情况不同。在这方面,它们完全相同。

作为最后的总结,如果有人想查看我的设置,请告诉我,我已经准备好了一个精简版。我没有在这里发布任何代码,因为我不确定你想要看什么。

再次感谢你,

陷印

1 个答案:

答案 0 :(得分:1)

经过大量搜索后,我找到了问题的原因。

表格' sfSiteAnalyst'拥有“数据输入”属性'设为是。改为否,它运作得很好。

仅仅比较该表格和控件的3,889个属性导致找到58个不同的属性 - 但其他差异没有意义(顶部,边界等)

另外,我注意到有很多地方你发布了一个' DoCmd.Save acForm,...'这给我带来了测试问题。他们真的有必要吗?