Modifier le nom d'une colonne [Résolu]

Signaler
Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
bonjour,

j'essaie de modifier le nom d'une des colonne de ma bdd access. pour cela, j'utilise l'instruction "execute" d'une connection adodb.
le compilateur me signale une erreur de syntaxe dans l'instruction "alter talbe ..." que je n'arrive pas a corriger.

pourriez-vous me dire ce qui cloche dans le code ci-dessous ?
j'ai laisse une 2eme commande "alter table" qui est celle generee automatiquement par mysql pour modifier le nom d'une colonne mais qui ne fonction guere mieux.

ancien_nom = "Colonne 1"
nouveau_nom = "col1"
connex.ConnectionString = chaine_connexion
connex.Open
connex.Execute "ALTER TABLE actions RENAME COLUMN [" & ancien_nom & "] TO [" & nouveau_nom & "];"
'commande tiree de mysql :
'connex.Execute "ALTER TABLE actions.[" & ancien_nom & "] CHANGE [" & ancien_nom & "] [" & nouveau_nom & "] DOUBLE;"
connex.Close

merci a vous,

alonsyl

3 réponses

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Salut,

A ma connaissance, Access n'accepte pas "ALTER TABLE".

Une solution est d'ajouter une colonne avec le nouveau nom, transférer les données puis effacer l'ancienne colonne.

C'est plus compliqué mais je ne vois rien d'autre pour Access.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
348
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
6 novembre 2008
11
bonjour canislupus,

si je suis ta technique, il me sermble que la colonne que je vais dupliquer puis recree sera situee en derniere position de ma table.

est-il possible de la repositionner a son emplacement d'origine ?

merci a toi,

alonsyl
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Ton problème m'a intéressé car ça pourrait me servir et j'ai trouvé une autre soluce en ADO mais qui ne fonctionne qu'à partir du provider "Provider=Microsoft.Jet.OLEDB.4.0" :

' Ajoute dans les références du projet : Microsoft ADO Ext. 2.x for DDL and Security
' et, à la place de "connex.execute ..." place ça :

Dim cat As New ADOX.Catalog
Dim tbl As ADOX.Table
Dim champ As ADOX.Column


Set cat.ActiveConnection = connex
Set tbl = cat.Tables(TaTable)
Set champ = tbl.Columns(ancien_nom)
champ.Name = nouveau_nom

' pour libérer les ressources
Set cat = Nothing
Set tbl = Nothing
Set champ = Nothing

Chez moi ça marche avec une base access 97. J'espère que ça fonctionnera pour toi.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?