如何使用Python遍历MS Access表


from win32com.client import Dispatch
oAccess = Dispatch("Access.Application")
oAccess.Visible = False
oAccess.OpenCurrentDatabase(my_db)
oDB = oAccess.CurrentDB
for tbl in oDB.TableDefs:
print(table.Name)
tbl.RefreshLink

我还做过:

for tbl in oAccess.TableDefs:
print(table.Name)
tbl.RefreshLink

错误:'function'对象没有'TableDefs'属性

我开始了解如何使用win32com操作Windows,但出于某种原因,它看起来像"。tabledefs"不认可。我是不是走错路了?

我知道这可以在VBA中完成。我的任务是把所有的东西都换成Python。

您的第一个错误,在这里,是VBA知道CurrentDb是一个方法,并且不能将方法分配给变量,所以它调用该方法。

然而,Python在将方法赋值给变量时没有任何问题,所以就这样做了。这意味着您需要使用括号来调用方法:

oDB = oAccess.CurrentDb()

这修复了当前的问题(同样适用于tbl.RefreshLink,这可能应该是tbl.RefreshLink())。

此外,您从未定义table,只定义tbl,因此您可能需要print(tbl.Name)

最新更新