刷新访问绑定表单内部字段列表

时间:2015-03-25 15:19:52

标签: vba ms-access

首先介绍一下:我在Access中有一个绑定到表的表单。我之前正在讨论一个恼人的错误,所有对Format(...)函数的调用都抛出type mismatch错误,无论它作为参数给出了什么。更令人困惑的是,错误只发生在表单打开时 - 在我可以输入的即时窗口中:

? Format(#17 March 2015#, "dd MMM yyyy")

如果表单已关闭,则触发此代码将返回预期结果。当它打开时,它扔了type mismatch。混乱。

我最终跟踪了这个问题 - 表格中绑定到表单的字段名为格式,这是 shadowing Format()函数,所以VBA试图将表字段视为函数并出错。

我关闭了表单,进入表设计并将Format列重命名为RequestFormat,期待这个问题消失。不幸的是,VBA似乎有一个东西,一旦定义就会严格地依附于事物,并且仍然为现在不存在的表字段维护一个条目,该字段继续遮蔽Format()函数。我可能会添加一个条目,也不能作为表字段引用,因为任何尝试调用它都会提示Access告诉我它找不到名为Format的字段。因为它不存在。

因此,我需要以某种方式让Access重建其绑定表单的内部字段列表,并摆脱现在已故的格式字段。有什么想法吗?

为了证明我没有疯狂,这是在一个绑定到同一个表的全新表单上输入Format时IDE中的intellisense:

enter image description here

这里是我原来的形式,仍然显示最近去世的格式属性,不应该仍然存在:

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以通过完全限定VBA Format函数来回避命名空间冲突问题,如下所示:

VBA.Format(#17 March 2015#, "dd MMM yyyy")

答案 1 :(得分:1)

看看你是否可以使用Access"忘记"关于不再存在的领域。

使用新名称保存当前表的副本。然后在表格的记录来源中使用该新名称。

注意:Kai报告任何旧表更改都有效 - 它不需要相同的表结构。

如果Access不再认为存在名为 Format 的字段,请再次将记录源更改回旧表名,看看它是否仍然忘记了格式字段。