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

时间:2011-07-01 14:31:02

标签: ms-access date importerror

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

但是,当文件开始使用不同的字段宽度时,我复制了DB,调整了输入规范中的起始/宽度值,并导入了。现在,所有带有null的行都会将(table)_import_errors中的日志记录为将文本转换为日期的错误。

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

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


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

唯一改变的是固定宽度纯文本输入中的两个其他列更宽。然而,Access“决定”在连续三次尝试中丢弃整行而不仅仅是日期字段。第四次,它仍然将其报告为错误,但导入了该行的其余部分。

因此,当Access无法正常行为时,请再试一两次,然后尝试从文本中明确编码转换。

1 个答案:

答案 0 :(得分:0)

两种可能性:

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

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

  3.   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查询,你就是黄金。