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

5 投票
2 回答
8878 浏览
提问于 2025-04-16 00:17

我想在Windows上用Python创建一个mdb数据库文件,但在Python文档中找不到相关的内容。我看到的都是关于如何连接数据库和使用游标(cursor)的一些信息。

有没有什么想法?谢谢...

2 个回答

0

首先,如果你还没有的话,先下载并安装 Microsoft Access 数据库引擎 2010 可再发行版

接下来,你需要安装 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 的信息:

https://elvand.com/python-and-ms-access/

11

我对 comtypes 这个模块的使用体验还不错。不过,你可能需要准备一个 Access 的 DAO/ADO/VBA 参考资料,因为这个 comtypes 模块是动态生成 COM 库的封装,所以没有内置的文档可以查阅。

下面是一个简单的示例,看看它是怎么工作的吧。(你可以自己试试看。)

from comtypes.client import CreateObject

access = CreateObject('Access.Application')

from comtypes.gen import Access

DBEngine = access.DBEngine
db = DBEngine.CreateDatabase('test.mdb', Access.DB_LANG_GENERAL)
      # For me, test.mdb was created in my My Documents folder when I ran the script 

db.BeginTrans()

db.Execute("CREATE TABLE test (ID Text, numapples Integer)")
db.Execute("INSERT INTO test VALUES ('ABC', 3)")

db.CommitTrans()
db.Close()

(把第二个导入语句放在 CreateObject 这一行之后,是为了处理在之前没有这个类型库的 Python 封装模块的情况。)

撰写回答