Renommer une colonne

Résolu
SuperBouly
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
- 22 mars 2007 à 21:23
SuperBouly
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
- 25 mars 2007 à 07:07
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

nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
23 mars 2007 à 09:11
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
3
SuperBouly
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

23 mars 2007 à 09:38
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
3
SuperBouly
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

23 mars 2007 à 11:10
ok, ça marche !
A noter que la connexion doit être une ADODBConnection et non pas une oledbConnection.
Merci pour tes lumières
Gilles
3
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
22 mars 2007 à 21:28
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SuperBouly
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

22 mars 2007 à 22:19
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
0
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
24 mars 2007 à 14:17
Salut,

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

25 mars 2007 à 07:07
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
0