Question 94

Comment supprimer un champ d'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 supprime un champ d'une table d'une base de données existante :

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"

    ' Suppression du champ
    cat.Tables("Table1").Columns.Delete "Champ1"

    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"

    ' Suppression du champ
    cnn.Execute "ALTER TABLE Table1 DROP Champ3"

    cnn.Close
    Set cnn = Nothing

End Sub

Remarque : avant de supprimer un champ vous devez d'abord supprimer les index correspondants.

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, supprimer, champs, ADO, ADODB, ADOX, ALTER TABLE, DROP