python - 如何使用 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
错误:“函数”对象没有属性“TableDefs”
我开始了解如何使用 win32com 操作 Windows,但由于某种原因,似乎无法识别“.TableDefs”。我是不是走错了路?
我知道这可以在 VBA 中完成。我的任务是将所有内容都切换到 Python。
解决方案
在这里,您的第一个错误是 VBA 知道CurrentDb
是一个方法,并且无法将方法分配给变量,因此它调用了该方法。
然而,Python 在将方法分配给变量时存在 0 个问题,所以就这样做了。这意味着您需要括号来调用该方法:
oDB = oAccess.CurrentDb()
这解决了眼前的问题(同样适用tbl.RefreshLink
,这可能应该是tbl.RefreshLink()
)。
此外,您从不定义table
, only tbl
,因此您可能想要print(tbl.Name)
。
推荐阅读
- html - iframe 中的 Pgadmin 界面
- python - 基于正态分布的 Python 绘图点
- ios - 如何在 UIKit ViewController 中使用 EnvironmentObject
- html - 如何在 Blazor 服务器应用程序组件中使用时间跨度并转换为 12 小时格式
- reactjs - 用于 CRA 的 src 之外的测试文件夹?
- swift - 如何确保 NSAlert 在窗口顶部弹出?
- python - C-Python 包装器中的内存泄漏
- php - 大型 cURL 请求的 JSON 响应在 PHP 中被截断,但在使用我的浏览器时没有
- django - 我怎样才能让人们在 3 个选项之间选择 2 个选项?
- python - PIL使用什么公式将灰度转换为RGB?