Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中创建mdb数据库文件?_Python_Database_Ms Access - Fatal编程技术网

如何在Python中创建mdb数据库文件?

如何在Python中创建mdb数据库文件?,python,database,ms-access,Python,Database,Ms Access,我想用Python在windows中创建一个mdb数据库文件,但用Python文档似乎无法理解。我读到的所有内容都与建立连接以及如何使用光标有关 有什么想法吗?谢谢……我对该模块的体验相当不错。您可能需要一个Access DAO/ADO/VBA参考,方便使用所使用的方法,但是,由于comtypes模块动态生成COM库包装,因此没有内置文档 下面是它如何工作的一个简单示例。(你自己去测试一下吧。) (对于typelibrary的Python包装器模块以前不存在的情况,将第二条导入语句移到Creat

我想用Python在windows中创建一个mdb数据库文件,但用Python文档似乎无法理解。我读到的所有内容都与建立连接以及如何使用光标有关

有什么想法吗?谢谢……

我对该模块的体验相当不错。您可能需要一个Access DAO/ADO/VBA参考,方便使用所使用的方法,但是,由于
comtypes
模块动态生成COM库包装,因此没有内置文档

下面是它如何工作的一个简单示例。(你自己去测试一下吧。)


(对于typelibrary的Python包装器模块以前不存在的情况,将第二条导入语句移到
CreateObject
行之后。)

首先下载并安装(如果没有)

然后您应该安装pyodbc模块

现在,您可以连接到access数据库:

ConFileName=(r'c:\mydb\myaccess.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + ConFileName + ';')
cursor = conn.cursor()
要从数据库中的任何表中进行选择,请使用以下简单代码:

ConFileName=(r'c:\mydb\myaccess.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + ConFileName + ';')
cursor = conn.cursor()
cursor.execute('select * from table1')
for row in cursor.fetchall():
    Table1Array.append((row[0],row[1],row[2])
print(str(len(Table1Array))+" records in Table1 loaded successfully.")
您可以通过此链接获得有关使用Python的MS Access的更多信息:


所谓mdb数据库,您是指Microsoft Access数据库吗?用一个示例更新了我的答案。谢谢JAB,我将尝试一下。如果您可以创建一个DBEngine变量,那么您还可以使用所有DAO表、字段、索引和关系对象。这些功能使您可以更详细地控制所创建的对象。请参阅我的网站上的Detritables.MDB页面,该页面演示了如何在应用程序中使用临时MDB。很抱歉,我对这一点还不熟悉,但我安装了comtypes并尝试运行代码,但随后出现以下异常:“ImportError:无法导入名称访问”。有什么想法吗?@Tony Toews:是的,嗯。。。这可能是因为我实际上没有将数据插入到以这种方式创建的表中,但是当我创建一个表并使用DAO添加一个字段时,当我后来在Access中打开它时,它没有显示在数据库中,由于这只是使用
comtypes
创建MDB文件的一个示例,我不想花更多的时间来弄清楚它。@GuidoS:如果您知道如何引用Access类型库,您可以在解释器中使用
GetModule
方法
comtypes.client
来生成适当的Python模块;如果您不知道这方面的细节,那么您可以打开一个解释器,从comtypes.client导入CreateObject,然后
CreateObject('Access.Application')
,如果Python包装器模块不存在,它应该自动生成它。。。当然,如果您在运行脚本的计算机上没有安装Microsoft Access,那么这一切都是毫无意义的。此外,还用可能更简单的解决方案修改了我的答案。
ConFileName=(r'c:\mydb\myaccess.mdb')
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + ConFileName + ';')
cursor = conn.cursor()
cursor.execute('select * from table1')
for row in cursor.fetchall():
    Table1Array.append((row[0],row[1],row[2])
print(str(len(Table1Array))+" records in Table1 loaded successfully.")