如何在该程序中解决07002参数太少的问题?

时间:2019-06-25 20:41:35

标签: python sql ms-access pyodbc

尝试编写一个简单的程序来解析Excel工作表,然后将数据存储在Access数据库中。

我不确定是什么问题,我尝试重命名参数,仔细检查拼写等。

{{1}}

这给了我错误:

  

pyodbc.Error :('07002','[07002] [Microsoft] [ODBC Microsoft Access驱动程序]
参数太少。期望值5.(-3010)(SQLExecDirectW)')

2 个答案:

答案 0 :(得分:0)

您可以使用

sql = "INSERT INTO MSDB ([SalesOrder], [SiteNumber], [SiteName], [Customer],ShipDate])
VALUES (?,?,?,?,?)"
cursor.execute(sql,(SO, SNM, Custom, SD, SN))

它将为您提供帮助

答案 1 :(得分:0)

由于需要将int转换为float的任何原因,我都可以使用它。 这是最适合我的代码。

params = (SalesO.value, SiteNum.value, SiteN.value, Cust.value, ShipD.value)
    params = [float(x) if type(x) is int else x for x in params] #Convert all int items to floats
    conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\llippincott\Desktop\MS DB_be.accdb;')
    cursor = conn.cursor()
    cursor.execute('select * from MSDB')
    cursor.execute("INSERT INTO MSDB (SalesOrder, SiteNumber, SiteName, Customer, ShipDate) VALUES (?,?,?,?,?)", (params))
    conn.commit()