数据库有几个表。除了一个,所有的都打开得很好。
db = QSqlDatabase("QODBC")
db.setDatabaseName(r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\...\file.accdb")
db.open(username, password)
model = QSqlTableModel(db=db)
model.setTable("messages")
model.select()
输出False
。
model.lastError().text() 命令输出:
'Unable to find table messages'
虽然 db.tables() 命令输出:
['messages', 'table1', 'table2', ..., 'tableN']
直接通过 MS Access,打开此表
已经尝试通过循环打开。关键字在 db.tables() 中,但 QSqlTableModel 没有具体看到“消息”表。
试图将 MS Access 更改为 2016 版本。我想,突然 MS Access 2019 中的某些类型与旧驱动程序发生冲突。没有帮助。
我想下载一个更新的驱动程序,但我没有找到这个。我试图在注册表中挖掘......我也没有找到任何东西。
请帮忙
所以,我通过打字找出了问题所在。我最初对驱动程序和 bigint 数据类型之间的冲突是正确的,只是缺少一些额外的步骤。
显然,当您尝试设置 bigint 数据类型并保存时,Access 会警告您,因此数据库可能不支持旧版本,但无论如何您保存,它会自动设置支持的最低版本,还是什么?
在将 bigint 数据类型更改为另一种数据类型后,数据的分离有所帮助。使用数据库-> 数据移动-> 访问数据库。