“#输入!”报告计算字段出错

问题描述 投票:0回答:7

我在 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 讨厌我的控制源吗?

ms-access ms-access-2010
7个回答
8
投票

您可能存在名称冲突,即 Access 正在选取

report 对象
Width
Height 成员,而不是称为 Width
Height
fields

我会创建一个新查询并简单地重命名其中有问题的字段。因此,如果您使用查询设计器:

  • 添加主键和任何其他无问题的字段,然后
    WidthValue: Width
    HeightValue: Height
    作为附加列;
  • 最后,将报表的记录源设置为查询而不是直接表,并相应更新计算的控制公式。

3
投票

这是一个非常简单的计算。您不创建查询、在所述查询中进行计算并将报告绑定到查询的原因是什么?为了解决这个问题而自杀是没有意义的。

事实上,现在我正在考虑,高度和宽度可能是保留字,因为它们是控件的属性。也许将它们更改为 HHeight 和 WWidth 之类的?


0
投票

当Access创建报表时,它使用查询的字段名称在报表上创建相关控件的名称。那么如果您稍后使用查询字段名称,它实际上引用具有相同名称的报表控件。因此,解决方案是,要么将报告字段名称重命名为与查询字段不同的名称,要么完全限定查询字段名称 [query].[field] 以强制访问使用查询字段名称。


0
投票

Microsoft 并未将高度和宽度列为保留字,但是,它们在调整表单和报表大小时使用。


0
投票

我遇到了一个相关的问题,我的表单会给我这个错误。将“表单”属性“数据输入”更改为“是”解决了此问题。不确定这是否能解决您的具体问题,但也许在“报告属性”中您可以找到相关字段?


0
投票

根据记录,名称冲突是给我在报告上带来类似问题的原因,并在报告属性控制源字段中重命名它,为我修复了它


-1
投票

右键单击您的区域并选择属性,然后转到“事件”选项卡,然后单击“输入”,从下拉列表中选择[事件过程],然后单击右侧的点,然后转到“MICROSOFT VISUAL BASIC FOR APPLICATION”在此窗口中,在“End Sub”上方键入此代码

面积 = 高度 * 宽度

但请注意,您在此代码中输入的名称必须能够出现在您的数据库中,并且与您在代码行中输入的名称相同 祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.