我刚刚提交了一个查询来添加到一个宏,它只是根据某个标准添加到一个名为exception的表中;但是我收到了上述错误。
我已阅读有关此错误的Microsoft支持条目,并且它指的是在其中一个字段中使用备注数据类型;所使用的表中没有一个具有这样的字段,它们是Text或Number。这是查询:
INSERT INTO Exceptions ( [Unique Number])
SELECT qryOutgoings.[Unique Number],
FROM qryOutgoings LEFT JOIN tblExlcusions ON qryOutgoings.[PLAN CODES] = tblExlcusions.[PLAN CODES]
WHERE (((tblExlcusions.[PLAN CODES]) Is Null));
(注意:是的,我已经更改了安全性的字段和查询名称,以防万一:))
Exceptions表中唯一编号的数据类型为:
来自另一个表的数据类型(通过qryOutgoings上的连接获得)完全相同。那么是什么导致了这个问题呢?
以下是该字段中某些数据的示例,包括最大数字:
这可能是什么问题?另外 - 注意这是 JUST MS ACCESS - 没有涉及SQL Server背景。
答案 0 :(得分:3)
SELECT
子句包含一个后跟逗号的字段。
SELECT qryOutgoings.[Unique Number],
如果该逗号也出现在实际查询中,请将其丢弃。但是我怀疑流浪逗号是问题而不是实际查询,否则你会收到不同的错误信息。
尝试将qryOutgoings.[Unique Number]
显式转换为字符串。
INSERT INTO Exceptions ([Unique Number])
SELECT CStr(qryOutgoings.[Unique Number])
FROM qryOutgoings LEFT JOIN tblExlcusions ON qryOutgoings.[PLAN CODES] = tblExlcusions.[PLAN CODES]
WHERE (((tblExlcusions.[PLAN CODES]) Is Null));
如果这不能消除错误,请检查Access看到的字段数据类型及其包含的文本长度。
SELECT
qryOutgoings.[Unique Number],
TypeName(qryOutgoings.[Unique Number]) AS type_of_unique_number,
Len(qryOutgoings.[Unique Number]) AS length_of_unique_number
FROM
qryOutgoings
LEFT JOIN tblExlcusions
ON qryOutgoings.[PLAN CODES] = tblExlcusions.[PLAN CODES]
WHERE (((tblExlcusions.[PLAN CODES]) Is Null));
如果没有其他解决方法,请尝试询问最左边的50个字符。
SELECT Left(qryOutgoings.[Unique Number], 50)