Renommer une colonne [Résolu]

Signaler
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
-
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
-
bonjour,
Je travaille avec VS2005 en VB.Net.

Je désire renommer une colonne d'une table ACCESS.
J'ai essayé la commande:
"ALTER TABLE MaTable RENAME COLUMN MaColonne TO MaNouvelleColonne" et quelques variantes inventées à la volée, mais le serveur me lève toujours la même exception :
Erreur de syntaxe dans l'intruction ALTER TABLE
Je ne trouve même pas de doc sur access à ce sujet.
Quelqu'un a-t-il la réponse ? Merci de vos lumières
Gilles

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut,

Tu peux utiliser ADOX,

Il faut faire une référence COM sur ADOX : microsoft ado ext 2.8

Voila un exemple d'utilisation

http://groups.google.fr/group/microsoft.public.dotnet.languages.vb/browse_thread/thread/c892b7e948c6a64b/c17ee22d6a7d6614?lnk=st&q=adox+dotnet&rnum=9&hl=fr#c17ee22d6a7d6614

Je ne te garantie rien mais cela devrait fonctionner
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

bonjour,
voilà une piste très sérieuse, je viens d'importer ms.adox.dll dans mon projet, j'ai tous les objets à ma disposition. Au travail,
Merci !
Je te tiens au courant
@+Gilles
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

ok, ça marche !
A noter que la connexion doit être une ADODBConnection et non pas une oledbConnection.
Merci pour tes lumières
Gilles
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

bonsoir,
merci de ta réponse.
Seulement voila, la base est access, pas de procédures stockées du genre sp_rename.
Pour le paragraphe final sur access, il fait appel à l'objet asp ADOX, inconnu dans le net.framework 2.0 utilisé dans mon projet.(asp.net 2.0).
Il me faut trouver autrechose !
J'ai fait une astuce qui consiste à créér une colonne identique portant le nouveau nom, recopier l'ancienne dans la nouvelle, et supprimer l'ancienne. mais l'odre des colonnes n'est pas conservé, ça me cree quelques soucis supplémentaires !
a suivre donc.
merci et @+
Gilles
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Salut,

Tu devrais mettre la partie de code source utilisé pour quelqu'un qui cherchera comment faire cette manipulation.
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

Bonjour,
Ok, voilà la sub en VB.Net 2.0, où strBase représente le chemin d'accès à la base, sTable nom de la table, sCol l'ancien Nom de colonne, NNomCol le nouveau.
(d'abord, ajouter la référence COM msadox.dll)

        Dim cat As New ADOX.Catalog
        Dim cn As New ADODB.Connection
        cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & StrBase
        cn.Open()
        Try
            cat.ActiveConnection = cn
            cat.Tables(sTab).Columns(sCol).Name = NNomCol
            cat.Tables.Refresh()


        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
        cn.Close()

Et c'est tout !
@+Gilles