参数太少。预计 1 个 CSV 导入
Posted
技术标签:
【中文标题】参数太少。预计 1 个 CSV 导入【英文标题】:Too few parameters. Expected 1 CSV Import 【发布时间】: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
My Import Table
感谢您的帮助。
标记
【问题讨论】:
在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 文件确实没有问题,如果我打开它,我会得到一个不同的错误,说它需要读写访问权限。反正我试过了,报错。 (不是有效路径)
【参考方案1】:
我将窃取 vacip 的答案并对其进行扩展。我100%同意他的建议:
在 CurrentDB.Execute 之前添加 Debug.Print strSQL 看看是不是 好的,有所有的值等等。
我建议将 Debug.Print 的结果粘贴到 Access 查询向导的 SQL 窗口中。然后尝试运行它。有时,当 Access 通过查询生成器运行错误时,错误会更加明显。另外,切换到这个新查询的设计视图,看看是否有任何异常。通常在这两个视图之间,我可以找出我的查询遇到的任何问题。
【讨论】:
最后我从 SAP 导出到 excel,而不是导入到 csv 中。即使在我设法导入数据之后,Access 也总是弄乱序列号,因为它想将其存储为数字,而不是文本。无论如何感谢您的帮助!以上是关于参数太少。预计 1 个 CSV 导入的主要内容,如果未能解决你的问题,请参考以下文章