我试图在表格中保存这样的csv文件:
XValue, YValue, Wert, Name, FzgID
, , "CARB (Evap Denom)", DIUMPR_CldStrtDenCldStrtTyp_C, 238
, , 800.0000000000000000, DIUMPR_ctGen.l500MD_C, 238
, , 10000.0000000000000000, DIUMPR_ctGen.l500MDInc_C, 238
, , 600.0000000000000000, DIUMPR_ctGen.nIgnMin_C, 238
, , 740.0000000000000000, DIUMPR_ctGen.pEnvMin_C, 238
, , 5.0048828125000000, DIUMPR_ctGen.rAPPMax_C, 238
我正在使用此代码:
DoCmd.TransferText acImportDelim, , "tb_DCM_Daten", Filename, True
我的问题是,对于csv文件的第一行。它不会在表格的CARB (Evap Denom)"
字段中保存Wert
。保存其他行没有任何问题。
如果我有一个只有一行的cvs文件:
XValue, YValue, Wert, Name, FzgID
, , "CARB (Evap Denom)", DIUMPR_CldStrtDenCldStrtTyp_C, 238
此行也将使用"CARB (Evap Denom)"
答案 0 :(得分:1)
您已经省略了TransferText方法的第二个参数。该参数是 SpecificationName ,它是导入规范的名称,它告诉Access该特定导入的字段名称和类型应该是什么。
如果没有导入规范,Access将查看CSV文件的前几行和" guess"在什么领域类型应该是。在您的情况下 - 除了第一行数据 - [Wert]看起来像一个数字字段,因此这是Access创建的。第一个数据行的值不会导入,因为它不适合Number (Double)
字段。
您至少有两个选择:
(1)您可以通过在Access中执行手动导入来创建导入规范,单击"高级..."按钮,调整字段类型,然后单击"另存为..."按钮......
...然后将Import Specification的名称作为TransferText调用的第二个参数:
DoCmd.TransferText acImportDelim, "DCM Import Specification", "tb_DCM_Daten", Filename, True
......或......
(2)您可以先创建表格(包含相应的字段名称和类型),然后将CSV文件导入现有表格。