丢失值或错误值的疑难解答
如果 收到消息 “尝试导入文件时出错”,则导入作完全失败。 相反,如果导入作显示一个对话框,提示你保存作的详细信息,则作能够导入全部或部分数据。 状态消息还会提到错误日志表的名称,在导入操作过程中发生的所有错误的说明都包含在这个错误日志表中。
重要: 即使状态消息指明操作完全成功,您也应该查看表的内容和结构,确保它们看起来是正确的,之后才能使用该表。
在数据表视图中打开目标表,查看所有数据是否都已添加到表中。
在设计视图中打开该表,查看字段的数据类型及其他属性设置。
下表说明了更正丢失值或错误值时可以采取的步骤。
提示: 在解决结果中出现的问题时,如果发现只是丢失几个值,则可将它们手动添加到表中。 反过来,如果发现整列或大量的值都丢失或未正确导入,则应在源文件中更正问题。 在更正完所有已知问题后,再重新执行导入操作。
问题
解决方法
图形元素
图形元素(如徽标、图表和图片)无法导入。 请在完成导入操作后将它们手动添加到数据库中。
计算值
导入计算列或单元格的结果,但不导入基础公式。 在导入操作过程中,您可以指定与公式结果兼容的数据类型,如“数字值”。
TRUE 或 FALSE 及 -1 或 0 值
如果源工作表或区域包含仅包含 TRUE 或 FALSE 值的列, Access 为该列创建“是/否”字段,并在字段中插入 -1 或 0 个值。 但是,如果源工作表或区域包含仅包含 -1 或 0 值的列,则默认情况下, Access 为该列创建数值字段。 为避免这一问题,您可在导入操作过程中将该字段的数据类型更改为“是/否”。
多值字段
将数据导入新表或将数据追加到现有表时, Access 不会启用对字段中的多个值的支持,即使源列包含用分号 (分隔的值列表 ,) 也是如此。 值列表将被视为单个值并放在文本字段中。
截断数据
如果数据在 Access 表中的列中被截断,请尝试在数据表视图中增加列的宽度。 如果这不能解决此问题,则 Excel 中数值列中的数据对于 Access 中目标字段的字段大小来说太大。 例如,目标字段可能在 Access 数据库中将 FieldSize 属性设置为 Byte ,但源数据包含大于 255 的值。 请更正源文件中的值,然后重试导入操作。
显示格式
您可能需要在设计视图中设置某些字段的“格式”属性,以确保值能在数据表视图中正确显示。 例如:
“是/否”字段在导入操作完成后显示 -1 和 0。 要解决这一问题,请在导入操作完成后,将该字段的“格式”属性设为“是/否”以显示复选框。
在 Access 中,长日期和中日期可能显示为短日期。 若要解决此问题,请在 Access 的设计视图中打开目标表,并将日期字段的 Format 属性设置为 “长日期” 或“ 中日期”。
注意: 如果源工作表包含 RTF 格式设置(如加粗、下划线、倾斜),则仅导入文本,而所有格式都将丢失。
重复值(键值冲突错误)
您要导入的记录可能会包含重复的值,它们不能存储在目标表的主键字段中,也不能存储在其“索引”属性设置为“是(不允许重复)”的字段中。 请删除源文件中的重复值,然后重试导入操作。
日期值相差 4 年
从 Excel 工作表导入的日期字段可能会关闭四年。 Windows 的Excel 可以使用两个日期系统:
1904 年日期系统 (,序列号范围为 0 到 63,918) ,对应于 1904 年 1 月 1 日至 2078 年 12 月 31 日的日期。
1900 年日期系统 (,序列号范围为 1 到 65,380) ,对应于 1900 年 1 月 1 日至 2078 年 12 月 31 日的日期。
可以在 Excel 选项中设置日期系统: 文件 > 选项 > 高级 > 使用 1904 日期系统。
备注 如果从 .xlsb 工作簿导入,则无论日期系统设置如何,它始终使用 1900 日期系统。
在导入数据之前,请更改 Excel 工作簿的日期系统,或者在追加数据后执行使用表达式 [date 字段名称] + 1462 来更正日期的更新查询。
Macintosh 的Excel 仅使用 1904 日期系统。
空值
导入操作结束时可能出现一条错误消息,指明操作过程中删除或丢失了哪些数据;或者,在数据表视图中打开表时,您可能看到某些字段值为空。 如果 Excel 中的源列未设置格式,或者前八个源行包含不同数据类型的值,请打开源工作表并执行以下作:
为源列设置格式。
移动行,以使每一列的前八行包含数据类型相同的值。
在执行导入操作的过程中,为每个字段选择适当的数据类型。 如果数据类型不正确,那么在导入操作完成后,整列中可能都是空值或错误值。
上述步骤有助于尽量减少出现空值的可能性。 下表列出了仍会出现空值的情况:
所丢失值的类型...
导入的目标位置...
而目标字段类型是...
要解决...
文本
新表
日期
将所有文本值替换为日期值,然后重试导入操作。
文本
现有的表
数字或日期
将所有文本值替换为与目标字段的数据类型匹配的值,然后重试导入操作。
日期值被替换为数字值
在以下情况下,您会看到似乎是随机出现的 5 位数数字而看不到实际日期值:
工作表中源列的前八行只包含数字值,但后面一些行包含日期值。 这些日期值将被错误地转换。
源列前八行的某些行包含日期值,而您尝试将它们导入数字字段。 这些日期值将被错误地转换。
要避免这一问题,请将源列中的日期值替换为数字值,然后重试导入操作。
有时,如果所含大部分值均为日期值的列也包含一些文本值,所有日期值似乎看起来都是 5 位数的随机数字。 若要避免这一问题,请将文本值替换为日期值,然后重试导入操作。
数字值被替换为日期值
在以下情况下,您会看到似乎是随机出现的日期值而看不到实际数字值:
源列的前八行只包含日期值,但后面一些行包含数字值。 这些数字值将被错误地转换。
源列前八行的某些行包含数字值,而您尝试将它们导入到日期字段中。 这些数字值将被错误地转换。
要避免这一问题,请将源列中的数字值替换为日期值,然后重试导入操作。
另外,您可能需要在数据表视图中查看向导最后一页中提到的错误日志表。 该表有三个字段:“错误”、“字段”和“行”。 每一行都包含有关一个特定错误的信息,“错误”字段的内容应该有助于您解决问题。
错误字符串和疑难解答提示
错误
说明
字段截断
文件中的值对于该字段的“字段大小”属性设置而言太大。
类型转换失败
工作表中的值不是适合该字段的正确数据类型。 该值在目标字段中可能已丢失或看起来不正确。 有关如何解决此问题的详细信息,请参阅上一个表。
键值冲突
该记录的主键值是一个重复值,它在表中已经存在。
有效性规则失败
一个值违背了通过使用“有效性规则”属性为该字段或该表设置的规则。
必填字段中的空值
由于本字段的“必填”属性被设置为“是”,因此字段值不允许为 null。
“自动编号”字段中的空值
要导入的数据包含一个用户试图追加到“自动编号”字段的空值。
不能正确识别的记录
文本值包含文本分隔符(通常为双引号)。 当值中含有分隔字符时,该字符在文本文件中必须重复两次,例如:
4 1/2"" 直径
返回页首