对于操作来说,一个答案可能太迟了,但是如果有人无意中在这里用Python寻找DAO领域的答案:
操作是正确的,即直接的问题在于分派方法中使用的字符串。Office 2010(Office 14?)安装“DAO.DBEngine.120“,我认为这是最早的版本,可以处理.accdb文件。一般来说,可以通过使用RegEdit在注册表中搜索子字符串来研究此问题DAO.DBEngine,并查看已注册哪些组件向该字符串添加版本号。在
还应该注意,要使用的python版本的32/64位需要与DAO版本的32/64位相匹配,而DAO版本又与安装它的Office的32/64位相匹配。在
另一个注意事项:如果您正在使用IDE并使用autocomplete,那么生成和导入与daoapi相对应的模块是很有用的。这可以通过在相关库上运行MakePy实用程序(在PythonWin程序中)来实现,这里是“microsoftoffice14.0access数据库引擎对象库”。这将在site packages\win32com\gen_py\中生成一个具有长GUID名称的模块文件。。。你可以把它改名为“DAO_120-64.py”或类似的名称。然后将gen_py目录添加到Python路径(或在sitepackages中添加一个.pth文件),以便import可以找到新模块。在
导入后,您可以执行IDE识别的任何操作,将类型与变量关联起来DAO.数据库, DAO.记录集,以此类推。在
此外,生成的DAO模块对于可用的对象、方法、属性和常量也是一个有用的参考。可能更有用的参考是打开一个Excel/Word/Access VBA工程,引用(导入)同一个库,并在其上使用VBA对象浏览器。在
一般来说,任何关于在Access中使用DAO的教程或文章(在VBA或VB中)都将描述常见操作中涉及的对象、方法和属性,这些操作几乎可以一字不差地转录到python中。主要区别在于,在python版本中,一些COM“默认方法”机制不起作用。例如,VBA
MyRecordset(“SomeColumn”)=“新值”
。。。在python中对应于:
在我的记录集字段(“SomeColumn”).Value=“新值”
希望有帮助。在