【问题标题】:Updating existing Access file syntax error更新现有 Access 文件语法错误
【发布时间】:2017-06-27 08:15:23
【问题描述】:

我在更新现有 Access 表时遇到问题。我有一个 Access 数据库,它应该用两列对一些 .log 文件进行排序:filenamefiledate。我在一个 Excel 文件中包含文件名和文件日期,该文件是通过对 100 多个 .log 文件进行排序而生成的,因此有 100 多个文件应该链接到 Access

我每次都遇到错误,并尝试了许多不同的方法。问题是我不知道如何编写语法。有人可以帮我吗?我想要 A -> filenameB -> filedate 以便每一对都有自己的 ID

import pypyodbc


UDC = r'C:\Users\Kaiser\Documents\Access\UDC.accdb'
# DSN Connection
#constr = " DSN=MS Access Database; DBQ={0};".format(UDC)
# DRIVER connection
constr = "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL={MS Access};DriverId=25;DefaultDir=C:/USERS/DOCUMENTS/ACCESS;DBQ=C:/USERS/DOCUMENTS/ACCESS/UDC.accdb"

# Connect to database UDC and open cursor
db = pypyodbc.connect(constr)
cursor = db.cursor()

sql = "UPDATE * INTO [tblLogfile]" + \
      "FROM [Excel 8.0;HDR=YES;Database=C:/Users/Documents/Access/Excel.xls].[Tab$];"

cursor.execute(sql)
db.commit()

cursor.close()
db.close()

错误

pypyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.')

【问题讨论】:

  • 首先决定你想做什么:stackoverflow.com/questions/2002500/… -- 然后阅读适当的语法。
  • @andre 我已经阅读了有关 UPDATE 语句的信息,但我不明白我应该如何在我的 sql 变量中编写它,没有关于如何将 excel 文件与 access 链接起来的示例,这就是我正在尝试做。
  • 但是我不知道按照我的方式做是不是最好的转移方式,所以如果你有一些建议很高兴听到
  • Insert 用于向表中添加数据,update 用于更新表中已有的数据。 -- 你需要一个INSERT 语句。

标签: python ms-access pyodbc


【解决方案1】:

你需要类似的 SQL:

sql = "INSERT INTO [tblLogfile] (<list of field names>) SELECT <list of matching field names> FROM [Excel 8.0;HDR=YES;Database=C:/Users/Documents/Access/Excel.xls].[Tab$];"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多