表单过滤器快速失败
Form filters failing fast and furious
作为前辈,我是Access和Whosebug的新手,所以上下文、语句、措辞等方面的错误,纯属无意。我有一颗善良的心,善意的,没有冒犯的意思。
我在未拆分的 DAO 2013 Access 数据库中有 5 个表单,它们都使用相同的代码处理这个特定问题。打开时,所有表单都设置为打开一个新的空白记录。
当搜索客户记录并打开该记录时,所有表单都有一个子表单容器,该容器是带标签的,包含大量客户记录信息。
在其中一个表单中,导航栏显示 "no filter" 并在子表单容器中显示客户的记录信息。无论过滤状态如何,客户记录信息都应该显示,所以这是应该发生的。
其中4个表单,表单导航栏显示"Unfiltered",子表单容器中显示none客户记录信息。如果我单击表单底部的过滤器按钮(或功能区中的过滤器切换按钮)两次,客户记录信息将在第二次单击时显示 - 表单移动到 "Filtered",然后再次移动到 "Unfiltered".然后所有子表单在第二个 "Unfiltered" 状态下正常运行。
我的数据库中当前设置了 -0- 手动 VBA 过滤器(即 me.customer.filter = false
),-0- 用于查找记录的查询 - 一切都是使用 VBA 构建的查找记录。
一旦数据库上线,最终用户将无法使用过滤器控件。这是我最后的错误。我感谢您提供的任何建议或解决方案。
这些是我尝试过的解决方案:
使用 Me.FilterOn = False
和 Me.Filter = ""
在打开时关闭 4 个受影响的表单上的所有过滤器,但这导致过滤器切换不可用并且子表单容器不可用在4个表格上显示任何客户记录信息
使用 Me.FilterOn = False
和 Me.Filter = ""
关闭当前 4 个受影响的表单上的所有过滤器,但这导致过滤器切换不可用并且子表单容器不可用在4个表格上显示任何客户记录信息
使用上面的 VBA 在打开时关闭所有 5 个表单上的所有过滤器,这导致过滤器切换不可用并且子表单容器不显示所有客户记录信息5 种形式
反编译,repaired/compressed,并重建了几次新的数据库
使用 VBA 强制在打开时出现 unfiltered/filtered/unfiltered 状态,但子表单受到干扰,我的截止日期没有给我时间弄清楚。
试图将所有内容都基于查询而不是表格,但是由于这些子表单必须是可编辑的并且查询必须是唯一的,所以这不是一个选项
将一种形式与其他形式进行比较,以了解 opening/searching 上的不同之处与相同之处。在这一点上,它们是相同的。
作为最后的总结,如果有人想看我的设置,请告诉我,我已经准备好了精简版。我在这里没有 post 任何代码,因为我不确定你想看什么。
再次感谢,
捕手
经过大量搜索,我找到了问题的原因。
表单 'sfSiteAnalyst' 将 属性 'Data Entry' 设置为是。更改为否,它工作正常。
仅比较该表单和控件的 3,889 个属性就发现了 58 个不同的属性——但其他差异毫无意义(顶部、边框等)
此外,我注意到您在很多地方发出 'DoCmd.Save acForm, ...' 导致我的测试出现问题。它们真的有必要吗?
作为前辈,我是Access和Whosebug的新手,所以上下文、语句、措辞等方面的错误,纯属无意。我有一颗善良的心,善意的,没有冒犯的意思。
我在未拆分的 DAO 2013 Access 数据库中有 5 个表单,它们都使用相同的代码处理这个特定问题。打开时,所有表单都设置为打开一个新的空白记录。
当搜索客户记录并打开该记录时,所有表单都有一个子表单容器,该容器是带标签的,包含大量客户记录信息。
在其中一个表单中,导航栏显示 "no filter" 并在子表单容器中显示客户的记录信息。无论过滤状态如何,客户记录信息都应该显示,所以这是应该发生的。
其中4个表单,表单导航栏显示"Unfiltered",子表单容器中显示none客户记录信息。如果我单击表单底部的过滤器按钮(或功能区中的过滤器切换按钮)两次,客户记录信息将在第二次单击时显示 - 表单移动到 "Filtered",然后再次移动到 "Unfiltered".然后所有子表单在第二个 "Unfiltered" 状态下正常运行。
我的数据库中当前设置了 -0- 手动 VBA 过滤器(即 me.customer.filter = false
),-0- 用于查找记录的查询 - 一切都是使用 VBA 构建的查找记录。
一旦数据库上线,最终用户将无法使用过滤器控件。这是我最后的错误。我感谢您提供的任何建议或解决方案。
这些是我尝试过的解决方案:
使用
Me.FilterOn = False
和Me.Filter = ""
在打开时关闭 4 个受影响的表单上的所有过滤器,但这导致过滤器切换不可用并且子表单容器不可用在4个表格上显示任何客户记录信息使用
Me.FilterOn = False
和Me.Filter = ""
关闭当前 4 个受影响的表单上的所有过滤器,但这导致过滤器切换不可用并且子表单容器不可用在4个表格上显示任何客户记录信息使用上面的 VBA 在打开时关闭所有 5 个表单上的所有过滤器,这导致过滤器切换不可用并且子表单容器不显示所有客户记录信息5 种形式
反编译,repaired/compressed,并重建了几次新的数据库
使用 VBA 强制在打开时出现 unfiltered/filtered/unfiltered 状态,但子表单受到干扰,我的截止日期没有给我时间弄清楚。
试图将所有内容都基于查询而不是表格,但是由于这些子表单必须是可编辑的并且查询必须是唯一的,所以这不是一个选项
将一种形式与其他形式进行比较,以了解 opening/searching 上的不同之处与相同之处。在这一点上,它们是相同的。
作为最后的总结,如果有人想看我的设置,请告诉我,我已经准备好了精简版。我在这里没有 post 任何代码,因为我不确定你想看什么。
再次感谢,
捕手
经过大量搜索,我找到了问题的原因。
表单 'sfSiteAnalyst' 将 属性 'Data Entry' 设置为是。更改为否,它工作正常。
仅比较该表单和控件的 3,889 个属性就发现了 58 个不同的属性——但其他差异毫无意义(顶部、边框等)
此外,我注意到您在很多地方发出 'DoCmd.Save acForm, ...' 导致我的测试出现问题。它们真的有必要吗?