Question 65

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.

Date de publication : 14 juillet 2002
Dernière modification : 16 septembre 2002
Rubriques : Bases de données
Mots-clés : base de données, tables, ajouter, ADO, ADODB, ADOX, CREATE TABLE