Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Create Access database using win32com

I want to create an Access database (*.accdb) from within a Python script. Using win32com and Dispatch I can call the application. However, I cant find anything on how to create a new database.

access = win32com.client.Dispatch('Access.Application')

At that point I have no need to put data into the database and I would do this using pyodbc - I simply need to create an empty database.

Does somebody has an example on how to do this?

Cheers Thomas

like image 895
Thomas Becker Avatar asked Mar 27 '13 10:03

Thomas Becker


1 Answers

You have an Access application object. Use its DBEngine.CreateDatabase method to create your db file.

This sample worked from Python 2.7 to create an MDB format database file. To create an ACCDB, use 128 (dbVersion120) for dbVersion.

import win32com.client
oAccess = win32com.client.Dispatch('Access.Application')
DbFile = r'C:\Users\hans\Documents\NewDb.mdb'
dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0'
# dbVersion40 64
dbVersion = 64
oAccess.DBEngine.CreateDatabase(DbFile, dbLangGeneral, dbVersion)
oAccess.Quit()
del oAccess
like image 74
HansUp Avatar answered Sep 23 '22 20:09

HansUp