Question 93

Comment ajouter un champ à une table d'une base de données ?

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, cliquez sur le menu "Projet/Références...". Dans la liste des références disponibles, sélectionnez "Microsoft ADO Ext. 2.X for DDL and Security". Vous pouvez maintenant essayer l'exemple suivant qui ajoute, à une table d'une base de données existante, un champ de type string :

Option Explicit

Private Sub Form_Load()

    Dim cat As ADOX.Catalog

    Set cat = New ADOX.Catalog

    ' Connexion à la base de donnée
    cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Mes Documents\MyDataBase.mdb"

    ' Ajout d'un champ de type "String"
    cat.Tables("Table1").Columns.Append "Champ3", adVarWChar, 50

    Set cat = Nothing

End Sub

La deuxième solution possible est d'exécuter une requête SQL "ALTER TABLE". Dans ce cas, il est inutile d'employer le modèle objet ADOX, les requêtes SQL pouvant être exécutées 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, cliquez sur le menu "Projet/Références...". Dans la liste des références disponibles, sélectionnez "Microsoft ActiveX Data Objects 2.X Library". Vous pouvez maintenant essayer le code suivant qui réalise exactement la même chose que l'exemple précédent :

Option Explicit

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 d'un champ de type "String"
    cnn.Execute "ALTER TABLE Table1 ADD Champ3 VARCHAR(50)"

    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 : 26 janvier 2003
Dernière modification : 26 janvier 2003
Rubriques : Bases de données
Mots-clés : base de données, tables, ajouter, champs, ADO, ADODB, ADOX, ALTER TABLE, ADD