我想用Python在Windows中创建一个mdb数据库文件,似乎无法用Python Docs来解决它。我读到的所有内容都与建立连接以及如何处理光标有关。
有什么想法?感谢...
答案 0 :(得分: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()
(对于类型库的Python包装器模块以前不存在的情况,在CreateObject
行之后移动了第二个import语句。)
答案 1 :(得分:0)
如果您还没有,请先下载并安装 Microsoft Access Database Engine 2010 Redistributable。
那么你应该安装pyodbc模块。
现在你可以连接访问数据库了:
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 的更多信息: