不要让TransferText
为您创建 Access 表。首先创建访问目标表并分配您需要的字段类型。
运行TransferText
时,CSV 数据将附加到该现有表中。只要您为 Access 字段选择兼容的数据类型,它就应该可以正常工作。
我检查了您的 CSV 文件。标题行很麻烦,因为缺少一些字段名称:
Reporting Unit,,$ Dollars,Offset Unit,,$ Dollars,Variance
这似乎是一个并发症DoCmd.TransferText
。所以我从 Access UI 手动导入。这给了我第 49 行第 3 列和第 6 列的导入错误。在 Access 中,目标字段均创建为长整数。但是,CSV 行中这些字段的值是 2262169190 和 -2262169190 ... 都超出了 Access 的长整数的容量,从 -2,147,483,648 到 2,147,483,647。
作为一种廉价的解决方法,我在导入时为这 2 列的数据类型选择了文本。这允许导入工作没有错误。成功将数据导入 Access 后,您可以在需要使用这些(字符串)值时将它们转换为数字类型。
当我选择 Double 作为这 2 列的类型时,它也有效。听起来这就是你真正想要的。
如果您想使用 导入DoCmd.TransferText
,我认为您需要创建一个导入规范。如果可能,我还会先修改 CSV 文件的标题行,以便所有字段都有名称。
我实际上在不更改 CSV 文件的情况下测试了这种方法。在 Access UI 中创建导入规范后(请参见下面的屏幕截图),此TransferText
操作在 Access 2007 中有效,没有导入错误。
DoCmd.TransferText acImportDelim, _
"IC_Y1301_Specification", _
"IC_Y1301_LD10279_F25210001", _
"C:\Users\hans\Downloads\IC_Y1301_LD10279_F25210001.CSV", _
True