设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3921|回复: 1

[ADO/DAO] 当您用Access链接到Excel 电子表格的表时出现错误Numeric field overflow

[复制链接]

点击这里给我发消息

发表于 2015-11-11 14:18:49 | 显示全部楼层 |阅读模式
当您用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 助手”或“应答向导”中键入运行宏,然后单击“搜索”以查看相关主题。



发表于 2015-11-11 17:13:37 | 显示全部楼层
赞!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-18 09:42 , Processed in 0.112085 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表