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. |