MS Access 报告给出“数据类型不匹配”错误,但基础查询没有
Posted
技术标签:
【中文标题】MS Access 报告给出“数据类型不匹配”错误,但基础查询没有【英文标题】:MS Access Report give "data type mismatch" error but underlying query does not 【发布时间】:2013-04-03 22:19:17 【问题描述】:我有一个 vba 子例程,它在调用打开基于查询的报表之前向查询添加 WHERE 子句。我知道这样做而不是使用参数化查询有点荒谬,但是当我在截止日期前构建函数时,由于某种原因我无法让参数查询工作,这是我能想到的最快的解决方案和。后来我的退出例程恢复查询原始 SQL。
但这不是问题。该查询在添加 WHERE 子句之前和之后都运行良好,我通过逐步执行 sub 并将构造的 SQL 语句复制并粘贴到新的 Access 查询中来确认这一点。它运行得很好。
问题出在报告上。它给了我“标准表达式中的数据类型不匹配”错误,无论我在子添加 WHERE 子句之前还是在添加 WHERE 子句之后运行它都是如此。
这已经正常工作了数周,然后它昨天突然爆炸,抛出错误,现在报告根本不会打印任何内容。 NULL 值不是问题。这不是数据类型错误。不知何故,它在报告中。
我认为数据库中可能有一些损坏,所以将其压缩,甚至将数据库的所有对象导入到一个新的干净数据库中。但错误仍然存在。
有没有人知道“数据类型不匹配”错误出现在报告而不是查询中?我以前从未发布过,因为我通常可以通过搜索找到我的答案,但这次我卡住了。
谢谢。
【问题讨论】:
DAC - 分而治之。在没有报告的情况下运行查询 - 您仍然收到错误吗?是 - 问题在查询中,否 - 问题在报告中。报告中有计算吗?这可能才刚刚开始发生,因为输入了一些新的(无效的)数据。 我已经运行了没有报告的查询。它运行良好。所以,你是对的。一定是报告,但不仅仅是新记录。旧记录也将不再在报告中打开,尽管它们过去有。报告本身正在返回错误。我想我的问题是,如果它绝对不是查询,那么报告中可能会返回“标准表达式中的数据类型不匹配错误”? 【参考方案1】:睡了一夜好觉后,我能够听从 ElectricLlama 的建议并找出错误所在。
计算查询中的一个字段并返回无意义 (#Error),该字段是报告中的“排序依据”字段。这就是报告中“数据类型不匹配错误”的来源。
所以要回答我自己的问题,如果您在报告中收到“条件表达式中的数据类型不匹配错误”错误但不是查询,请检查报告和查询中的任何计算字段,并检查所有组和排序按报告中的字段。
感谢两位的建议。
【讨论】:
以上是关于MS Access 报告给出“数据类型不匹配”错误,但基础查询没有的主要内容,如果未能解决你的问题,请参考以下文章
ms access 数据库中条件表达式异常中的数据类型不匹配
使用 MS Access 的 C# 标准表达式中的数据类型不匹配?
在 MS Access 中保存来自 VB.Net Windows 窗体的数据时出现错误 System.Data.OleDb.OleDbException:“标准表达式中的数据类型不匹配”。