Rajouter un champs ds BDD

Messages postés
206
Date d'inscription
mercredi 30 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2007
-
Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004
-
Bonjour, j'utilise la méthode ADO et je voudrais rajouter un champs à une base de données dynamiquement, j'utilise alors rsADO.Fields.Append mais une erreur se produit :
INTERDIT DANS LE CONTEXTE
Faut-il que je modifie ma façon d'ouvrir la base ?

1 réponse

Messages postés
120
Date d'inscription
jeudi 31 octobre 2002
Statut
Membre
Dernière intervention
2 août 2004

bonjour,

tout dépend, mais pour ajouter un champ dans une table, il faut passer par le catalogue :

dim Cat as new adox.catalog
dim Tbl as new adox.table
dim Col as new adox.column

' chaîne de connexion à ta base
cat.activeconnection = ..........

with Col
.Name = "nom_de_ton_champ_à_ajouter"
.Type = adInteger ' type de données texte par ex.
Set .parentcatalog = Cat
.Properties("autoincrement") = True
End with

' Properties ne fonctionne pas si on n'a pas auparavant associé le parentcatalog au catalogue en cours

Cat.Tables("nom_de_la_table").Columns.Append Col

set Cat = nothing

Avec ça, tu devrais t'en tirer. Tu vois qu'on ne passe pas par Fields. Fields est plus une notion de cellule, donc de champ DANS un enregistrement, Column est une notion de colonne, donc de champ pour une table complète.

J'espère t'avoir aidé.

Bon courage

oiseau