我在 Access 中有一份报告,其中包含 3 个字段:
Width
、Height
和 Area
。Width
和 Height
是从报告绑定到的表中提取的,而 Area
应该被计算(高度 * 宽度)。我已将 Control Source
的 Area
设置为 = [Height] * [Width]
,但在打开表单时,字段显示 #Type!
,以典型的描述性访问错误方式,很好地使用 #
和 !
来使准确地谷歌是不可能的……但我离题了。我不知道 #Type!
是什么意思,Access 也不想告诉我。
我无法理解这一点。在绑定表中,
Height
和 Width
是整数,并且都填充在正在查看的记录中(因此这不是 NULL
问题)。如果我将 Control Source
更改为 really simple - 比如 =[Height]
,它会输出 #Error!
(再次感谢 Access 提供的有用信息。如果没有你,我们就会迷失方向)。连= 1
都吐出#Error!
。
知道为什么 Access 讨厌我的控制源吗?
您可能存在名称冲突,即 Access 正在选取
report 对象的
Width
和 Height
成员,而不是称为 Width
和 Height
的 fields。
我会创建一个新查询并简单地重命名其中有问题的字段。因此,如果您使用查询设计器:
WidthValue: Width
和 HeightValue: Height
作为附加列; 这是一个非常简单的计算。您不创建查询、在所述查询中进行计算并将报告绑定到查询的原因是什么?为了解决这个问题而自杀是没有意义的。
事实上,现在我正在考虑,高度和宽度可能是保留字,因为它们是控件的属性。也许将它们更改为 HHeight 和 WWidth 之类的?
当Access创建报表时,它使用查询的字段名称在报表上创建相关控件的名称。那么如果您稍后使用查询字段名称,它实际上引用具有相同名称的报表控件。因此,解决方案是,要么将报告字段名称重命名为与查询字段不同的名称,要么完全限定查询字段名称 [query].[field] 以强制访问使用查询字段名称。
Microsoft 并未将高度和宽度列为保留字,但是,它们在调整表单和报表大小时使用。
我遇到了一个相关的问题,我的表单会给我这个错误。将“表单”属性“数据输入”更改为“是”解决了此问题。不确定这是否能解决您的具体问题,但也许在“报告属性”中您可以找到相关字段?
根据记录,名称冲突是给我在报告上带来类似问题的原因,并在报告属性控制源字段中重命名它,为我修复了它
右键单击您的区域并选择属性,然后转到“事件”选项卡,然后单击“输入”,从下拉列表中选择[事件过程],然后单击右侧的点,然后转到“MICROSOFT VISUAL BASIC FOR APPLICATION”在此窗口中,在“End Sub”上方键入此代码
面积 = 高度 * 宽度
但请注意,您在此代码中输入的名称必须能够出现在您的数据库中,并且与您在代码行中输入的名称相同 祝你好运