Parce que MS Access est à la fois une application GUI .exe et une base de données backend, pour créer une base de données est un processus différent de la création d'objets de base de données comme Tables, Vues (ie, requêtes stockées), et même Procédures. En comparaison, l'autre RDMS au niveau du fichier, SQLite, doit ouvrir son shell .exe à CREATE DATABASE
. Et les RDMS au niveau du serveur (SQL Server, MySQL, Postgres), il faut se connecter à l'instance du serveur pour exécuter la commande. MS Access n'a pas le shell ou les installations d'instance, juste un objet d'application.
Par conséquent, après avoir créé une base de données avec la méthode CreateDatabase, envisagez d'exécuter une instruction SQL DDL à CREATE TABLE
, ce que vous pouvez faire avec la méthode Execute().
Python COM Interface
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
Alors que le CREATE DATABASE
n'est pas disponible dans SQL MS Access, vous pouvez exécuter l'Execute
ci-dessus avec une API Python ODBC avec une commande CREATE TABLE
seulement après la création du fichier de base de données:
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()
Quelle version d'accès ms? Le docssuggest que vous utilisez façon obsolète d'ouvrir la base de données si ms accès 2000 ou après. – Schollii
Salut Schollii, j'essaye de créer 2002 - 2003 mdb – WRJ