【发布时间】:2011-07-01 14:31:02
【问题描述】:
Access DB 导入固定宽度的文本文件;一列主要是日期。 当日期不可用时,文件的创建者实际上使用字符串“Null” Access 将该行放入表中,该字段实际上为空。
但是,当文件开始具有不同的字段宽度时,我复制了数据库,调整了输入规范中的起始/宽度值,然后导入。现在,所有带有 null 的行都会登录 (table)_import_errors 作为将文本转换为日期的错误。
我没有找到任何设置(不是我更改任何设置)来解释它。一个不同之处在于,虽然两个数据库都是 Access 2000 格式,但原始数据库位于仍然具有 Access 2000 的计算机上,而新数据库由 Access 2003 处理。
这是 Access 版本中的行为变化吗?预处理文件是唯一的解决方案吗?
谢谢,大卫。如果它没有自行修复,这就是我会做的(除了 Excel 部分)。我发布了那个,但显然有人不喜欢公开承认 Access 有错误。
唯一改变的是固定宽度的纯文本输入中的两个 other 列更宽了。然而,Access“决定”放弃整行而不是仅仅连续三次尝试的日期字段。第四次还是报错,但是导入了剩下的行。
因此,当 Access 无缘无故出现异常时,请再试一两次,然后尝试显式编码文本转换。
【问题讨论】:
-
我不知道您在暗示什么,因为您暗示 Access 存在错误,因此有人删除了您的某些内容。这是一个非常严重的指控。
-
Access 在这里并不是“行为不端”——它按照设计的方式行事。你不知道如何告诉它如何正确地做事并不是 Access 的缺陷。
-
1.评论与回答:因为某种原因,那天的 stackoverflow 不允许我发表评论。
-
2.问题的原因是 Access 开始丢弃带有转换错误的记录/行。 “之前”行为是报告转换错误,并仅丢弃该字段。几次尝试后,当先前的行为恢复时,我发布了这个事实,但有人删除了它。至于为什么他们删除了它,这只是一个猜测。但是我确实在发布后在网站上看到了它,但是当您回答时,它已经消失了。
-
3.行为不端:你是不是有点个人化了 Access?我更改了输入规范中几列的 WIDTH,Access 更改了其在其他列中解释字符串“Null”的规则。然后,随着我 NO 的进一步改变,Access 又回到了以前的方式处理“Null”。我称之为行为不端。
标签: ms-access date importerror