由于 MS Access 既是 GUI .exe 应用程序又是后端数据库,因此创建数据库的过程与创建数据库对象(如Tables, Views(即存储的查询),甚至程序.
作为比较,另一个文件级 RDMS SQLite 必须打开其 .exe shell 才能CREATE DATABASE
。服务器级 RDMS(SQL Server、MySQL、Postgres)必须登录服务器实例才能运行命令。 MS Access 没有 shell 或实例设施,只是一个应用程序对象。
因此,在创建数据库后创建数据库 https://msdn.microsoft.com/en-us/library/bb243161(v=office.12).aspx方法,考虑运行 DDL SQL 语句来CREATE TABLE
你可以用执行() https://msdn.microsoft.com/en-us/library/bb243015(v=office.12).aspx method.
Python通讯接口
from win32com.client import Dispatch
try:
dbname = r'C:/Users/Guest/Desktop/NewDB.mdb'
accApp = Dispatch("Access.Application")
dbEngine = accApp.DBEngine
workspace = dbEngine.Workspaces(0)
dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0'
newdb = workspace.CreateDatabase(dbname, dbLangGeneral, 64)
newdb.Execute("""CREATE TABLE Table1 (
ID autoincrement,
Col1 varchar(50),
Col2 double,
Col3 datetime);""")
except Exception as e:
print(e)
finally:
accApp.DoCmd.CloseDatabase
accApp.Quit
newdb = None
workspace = None
dbEngine = None
accApp = None
Python DB API
虽然CREATE DATABASE
在 MS Access SQL 中不可用,您可以运行上面的命令Execute
与任何带有CREATE TABLE
仅在创建数据库文件后才执行命令:
import pypyodbc
dbname = r'C:/Users/Guest/Desktop/NewDB.mdb'
constr = "DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={0};".format(dbname)
dbconn = pypyodbc.connect(constr)
cur = dbconn.cursor()
cur.execute("""CREATE TABLE Table1 (
ID autoincrement,
Col1 varchar(50),
Col2 double,
Col3 datetime);""")
dbconn.commit()