Comment ajouter une table à une base de données avec ADO ?
La première solution possible consiste à employer le modèle objet ADOX qui
est consacré à la structure des bases de données (le modèle objet ADODB
étant lui consacré à la gestion de données).
Dans ce cas, il faut d'abord rajouter une référence à ADOX. Pour ce faire,
cliquer sur le menu "Projet/Références...". Dans la liste des
références disponibles, sélectionnez "Microsoft ADO Ext. 2.1 for DDL and
Security". Vous pouvez maintenant essayer l'exemple suivant qui ajoute, à
une base de donnée existante, une table composée de trois champs et d'une clé
primaire.
Private Sub Form_Load()
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim key As New ADOX.key
' Connexion à la base de donnée
cat.ActiveConnection =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Mes
Documents\MyDataBase.mdb"
' Ajout d'une table
tbl.Name = "Table1"
tbl.Columns.Append "Champ1", adInteger
tbl.Columns.Append "Champ2", adInteger
tbl.Columns.Append "Champ3", adVarWChar, 50
cat.Tables.Append tbl
' Ajout d'une clé primaire
key.Name = "ClePrimaire"
key.Type = adKeyPrimary
key.RelatedTable = "Table1"
key.Columns.Append "Champ1"
tbl.Keys.Append key
Set key = Nothing
Set tbl = Nothing
Set cat = Nothing
End Sub
La deuxième solution possible est d'exécuter une requête SQL "CREATE
TABLE". Dans ce cas, il est inutile d'employer le modèle objet ADOX, les
requêtes SQL pouvant être exécutée en employant le modèle objet ADODB.
Si ce n'est déjà fait, n'oubliez-donc pas de rajouter une référence à
ADODB. Pour ce faire, cliquer sur le menu "Projet/Références...".
Dans la liste des références disponibles, sélectionnez "Microsoft
ActiveX Data Objects 2.1 Library". Vous maintenant essayer le code suivant
qui réalise exactement la même chose que l'exemple précédent :
Private Sub Form_Load()
Dim cnn As New ADODB.Connection
' Connexion à la base de donnée
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Mes Documents\MyDataBase.mdb"
' Ajout de la table, des trois champs et de la clé primaire
cnn.Execute "CREATE TABLE Table1 (Champ1 INT, Champ2
INT, Champ3 VARCHAR(50), PRIMARY KEY (Champ1))"
cnn.Close
Set cnn = Nothing
End Sub
Si vous désirez plus d'informations sur ADOX et ADODB, lisez les excellents
technopoches consacrés à ces technologies et qui sont disponibles à l'adresse
suivante : http://www.microsoft.com/france/msdn/support/technopoches/default.asp. |