【发布时间】:2017-06-27 08:15:23
【问题描述】:
我在更新现有 Access 表时遇到问题。我有一个 Access 数据库,它应该用两列对一些 .log 文件进行排序:filename 和 filedate。我在一个 Excel 文件中包含文件名和文件日期,该文件是通过对 100 多个 .log 文件进行排序而生成的,因此有 100 多个文件应该链接到 Access
我每次都遇到错误,并尝试了许多不同的方法。问题是我不知道如何编写语法。有人可以帮我吗?我想要 A -> filename 和 B -> 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语句。