该字段太小,无法接受您尝试添加的数据量

时间:2013-08-09 14:24:55

标签: ms-access ms-access-2003

我刚刚提交了一个查询来添加到一个宏,它只是根据某个标准添加到一个名为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表中唯一编号的数据类型为:

  • 文本
  • 场地大小:50

来自另一个表的数据类型(通过qryOutgoings上的连接获得)完全相同。那么是什么导致了这个问题呢?

以下是该字段中某些数据的示例,包括最大数字:

  • 515145
  • 132132
  • 824
  • 772794

这可能是什么问题?另外 - 注意这是 JUST MS ACCESS - 没有涉及SQL Server背景。

1 个答案:

答案 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)