繁体   English   中英

MS Access 设置忽略日期转换错误

[英]MS Access setting to ignore date conversion error

Access DB 导入固定宽度的文本文件; 一列主要是日期。 当日期不可用时,文件的创建者实际上使用字符串“Null”Access 将行放入表中,该字段实际上是 null。

但是,当文件开始具有不同的字段宽度时,我复制了数据库,调整了输入规范中的起始/宽度值,然后导入。 现在,所有带有 null 的行都会登录 (table)_import_errors 作为将文本转换为日期的错误。

我没有找到任何设置(不是我更改任何设置)来解释它。 一个区别是,虽然两个 DB 都是 Access 2000 格式,但原始数据库位于仍然具有 Access 2000 的计算机上,而新数据库由 Access 2003 处理。

这是 Access 版本中的行为变化吗? 预处理文件是唯一的解决方案吗?


谢谢,大卫。 如果它没有自行修复,这就是我会做的(除了 Excel 部分)。 我发布了那个,但显然有人不喜欢公开承认 Access 有错误。

唯一改变的是固定宽度纯文本输入中的另外两列更宽。 然而,Access“决定”放弃整行而不是仅仅连续三次尝试的日期字段。 第四次还是报错,但是导入了该行的rest。

因此,当 Access 无缘无故出现异常时,请再试一两次,然后尝试显式编码文本转换。

两种可能:

  1. 使用将日期字段导入文本字段的缓冲区字段或缓冲区表。 然后,您可以将其处理为最终目标字段中的适当值。

  2. 使用 SQL 导入而不是 DoCmd.TransferText。 在这种情况下,您要做的是在 FROM 子句中使用连接字符串,这样您就可以处理 SELECT 中的日期字段:

  SELECT Sheet1.FirstField, Replace(Sheet2.DateField, "NULL", Null) As DateField 
  FROM Sheet1 IN 'C:\Import\Spreadsheet.xls'[Excel 5.0;HDR=YES;IMEX=1;];

将其转换为 INSERT 查询,您就很成功了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM