在当前项目中,我需要保留一个Excel文件,该文件将从计算机中的值获取到Access数据库以使用它们并将其导入数据模型中。 问题在于某些值由于保存方式而给出无效的结果。例如,时间戳保存为
030420而不是03:04:20,Access无法处理该问题,并给了我#NUMBER
我不能简单地在Excel中更改数据类型,因为整个Excel每小时都会被无法影响的来源刷新。
任何帮助表示赞赏。
答案 0 :(得分:1)
如果Erik的建议不起作用,您可以
-创建Excel源的备份副本
-调整文件:在有问题的列的第一行中输入文本
-将调整后的文件链接到Access
-将真实文件放回原处。
现在,有问题的列应读取为“文本”,您可以构建一个查询来解决任何问题,例如转换,空值处理...
答案 1 :(得分:1)
链接(不导入)Excel文件,您就有一个链接表。
现在,将此链接表用作simpel select查询中的源,您可以在其中修改数据并根据需要对字段进行别名。例如:
Select
F1 As SomeName,
F2 As OtherName,
TimeSerial(Mid([F5],1,2),Mid([F5],3,2),Mid([F5],5,2)) As TrueTime
From
LinkedTable
Where
F7 Is Not Null
使用此查询进行导入。
答案 2 :(得分:0)
考虑查询Excel文件而不是使用链接表。
查询可以直接查询Excel范围:
SELECT * FROM
[Excel 12.0 XML;DATABASE=PathToMyExcel;HDR=Yes;IMEX=1].[MyRange] t
然后,您可以使用诸如TimeSerial
之类的函数将数字转换为时间值。