【发布时间】:2016-06-29 08:02:45
【问题描述】:
我正在尝试通过 VBA 将 CSV 文件导入我的 Access 数据库。我收到此错误:“运行时错误:'3061':参数太少。预期为 1。”
我已经尝试添加单引号,就像其他线程建议的关于这个问题一样,但它没有帮助。
strSQL = "INSERT INTO Import (" & _
"[Equipment]" & _
",[Description]" & _
",[User_status]" & _
",[Functional_Location]" & _
",[Functional_Location_Desc]" & _
",[Cost_Center]" & _
",[Main_WorkCtr]" & _
",[Manufacturer]" & _
",[Model_Number]" & _
",[Serial_Number]" & _
",[Plant_Section])" & _
" SELECT Equipment,Description,User_status" & _
",Functional_Loc,Description3,Cost_Center,Main_WorkCtr" & _
",Manufacturer,Model_number,ManufSerialNo,Plant_section" & _
" FROM [Text" & _
";FMT=Delimited" & _
";HDR=YES" & _
";IMEX=2" & _
";CharacterSet=1252" & _
";DATABASE=" & strFolder & "].[" & strFilename & "]"
CurrentDb.Execute strSQL
我的 CSV 文件的第一行:Equipment,Description,User_status,Functional_Loc,Description3,Cost_Center,Main_WorkCtr,Manufacturer,Model_number,ManufSerialNo,Plant_section
感谢您的帮助。
标记
【问题讨论】:
-
在
CurrentDB.Execute之前添加Debug.Print strSQL,看看是否没问题,是否有所有值等 -
您是否错过了数据库名称上的方括号?
-
Debug.Print: INSERT INTO Import ([Equipment],[Description],[User_status],[Functional_Location],[Functional_Location_Desc],[Cost_Center],[Main_WorkCtr],[Manufacturer],[Model_Number ],[Serial_Number],[Plant_Section]) SELECT Equipment,Description,User_status,Functional_Loc,Description3,Cost_Center,Main_WorkCtr,Manufacturer,Model_number,ManufSerialNo,Plant_section FROM [Text;FMT=Delimited;HDR=YES;IMEX=2;CharacterSet= 1252;DATABASE=G:\GMH Emelőgépek\SAP 脚本].[sap_adatok.csv]
-
尝试在文件名周围添加单引号。 (我只是在这里猜测。):
";DATABASE='" & strFolder & "'].["所以结果应该是:'DATABASE=G:\GMH Emelőgépek\SAP script'] -
查找 CSV 文件确实没有问题,如果我打开它,我会得到一个不同的错误,说它需要读写访问权限。反正我试过了,报错。 (不是有效路径)