0

我有一个 vba 子例程,它在调用打开基于查询的报告之前向查询添加 WHERE 子句。我知道这样做而不是使用参数化查询有点荒谬,但是当我在截止日期前构建函数时,由于某种原因我无法让参数查询工作,这是我能想到的最快的解决方案和。后来我的退出例程恢复了查询的原始 SQL。

但这不是问题。该查询在添加 WHERE 子句之前和之后都运行良好,我通过单步执行 sub 并将构​​造的 SQL 语句复制并粘贴到新的 Access 查询中来确认这一点。它运行得很好。

问题出在报告上。它给了我“标准表达式中的数据类型不匹配”错误,无论我在子添加 WHERE 子句之前还是在添加 WHERE 之后运行它都是如此。

这已经正常工作了数周,然后它昨天突然爆炸,抛出错误,现在报告根本不会打印任何东西。这不是 NULL 值的问题;这不是数据类型错误。不知何故,它在报告中。

我认为数据库中可能存在一些损坏,因此对其进行了压缩,甚至将数据库的所有对象导入到一个新的干净数据库中。但错误仍然存​​在。

有没有人知道“数据类型不匹配”错误出现在报告中而不是查询中?我以前从未发布过,因为我通常可以通过搜索找到我的答案,但这次我被卡住了。

谢谢。

4

1 回答 1

2

经过一夜好眠后,我能够遵循 ElectricLlama 的建议并找出错误。

查询中的一个字段被计算并返回废话(#Error),该字段是报告中的“排序依据”字段。这就是报告中“数据类型不匹配错误”的来源。

因此,要回答我自己的问题,如果您在报告中收到“条件表达式中的数据类型不匹配错误”错误但不是查询,请检查报告和查询中的任何计算字段,并检查所有组并按字段排序那个报告。

感谢你们两位的建议。

于 2013-04-04T10:01:14.463 回答