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
错误:“函数”对象没有属性“ TableDefs”
我开始了解如何使用win32com操作Windows,但是由于某种原因,似乎无法识别“ .TableDefs”。我会以错误的方式处理吗?
我知道这可以在VBA中完成。我的任务是将所有内容切换到Python。
在这里,您的第一个错误是VBA知道CurrentDb
是一个方法,并且无法将方法分配给变量,因此它将调用该方法。
但是,Python在将方法分配给变量方面存在0个问题,因此就这样做了。这意味着您需要括号才能调用该方法:
oDB = oAccess.CurrentDb()
这样可以解决当前的问题(同样适用tbl.RefreshLink
,这可能应该是tbl.RefreshLink()
)。
此外,您永远不会table
只定义tbl
,因此您可能想要print(tbl.Name)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句