参数太少。预计 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 导入的主要内容,如果未能解决你的问题,请参考以下文章

MS Access SQL 参数太少。预计 4

访问 INSERT INTO - 几个参数。预计 2

更新语句Java sql异常:期望的参数太少

Python argparse:参数太少

Keras CNN 参数太少

JS参数可以少传吗?