|
当您用Access查询链接到 Microsoft Excel 电子表格的表时,可能收到以下错误消息 : Numeric field overflow.
原因
Access 为 Excel 电子表格的每个字段分配一种数据类型。这种分配基于前 8 行中包含的数据。例如,如果某个字段在前 8 行中具有 数字数据类型,而在其余的某些行中包含文本值,则 Access 将为该链接表字段分配 数字数据类型。这使得 Access 无法链接包含文本数据值的记录。当查询该字段时,Microsoft Jet 数据库引擎在应该是数字的地方遇到了文本。该查询将失败,并出现“症状”一节中的错误消息。
替代方法
要解决此问题,您必须确保源 Excel 电子表格的每个字段中的数据值是完全相同的数据类型。或者,如果 Excel 电子表格的字段包含混合数据类型的数据值,则将该字段格式化为 文本。使用以下代码在单元格中重新输入值。然后,将 Excel 电子表格链接到 Access。为此,请按照下列步骤操作:
注意:开始这些步骤之前,必须先备份 Excel 电子表格。- 在 Excel 中打开源电子表格。
- 在电子表格中,标识包含混合数据类型的数据值的字段。
- 选择被标识的列,然后将电子表格中的单元格格式化为 文本。
- 在 Excel 中创建包含以下过程的宏:Sub Addspace() Dim cell As Object For Each cell In Selection cell.Value = " " & cell.Value cell.Value = Right(cell.Value, Len(cell.Value) - 1) NextEnd Sub
- 选择电子表格中包含混合数据类型的数据值的字段。运行您在第 4 步中创建的宏。
注意:如果在有问题的单元格上运行该宏时出错,请忽略此错误。 - 保存电子表格。
- 在 Access 中打开数据库。
- 从数据库中链接到 Excel 中的源电子表格。
更多信息
导入时,不要链接 Excel 电子表格。这是因为 文本数据类型在导入算法中具有优先权。例如,如果进行数据采样所得出的主要数据类型是数值,但是此样本中至少有一个文本值,则 Access 会将整个字段作为 文本导入。
参考
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: ACC2002:忽略的 MaxScanRows 设置可能引起链接表中的数据类型不正确
ACC2000:#Num Appears in Linked Microsoft Excel Spreadsheet
有关如何在 Microsoft Excel 中创建宏的更多信息,请单击“帮助”菜单上的“Microsoft Excel 帮助”,在“Office 助手”或“应答向导”中键入创建宏,然后单击“搜索”以查看相关主题。 有关如何在 Microsoft Excel 中运行宏的更多信息,请单击“帮助”菜单上的“Microsoft Excel 帮助”,在“Office 助手”或“应答向导”中键入运行宏,然后单击“搜索”以查看相关主题。
|
|