Renommer une colonne [Résolu]

SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 22 mars 2007 à 21:23 - Dernière réponse : SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 23 mars 2007 à 09:11
3
Merci
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

Merci nhervagault 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de nhervagault
Meilleure réponse
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 23 mars 2007 à 09:38
3
Merci
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

Merci SuperBouly 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de SuperBouly
Meilleure réponse
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 23 mars 2007 à 11:10
3
Merci
ok, ça marche !
A noter que la connexion doit être une ADODBConnection et non pas une oledbConnection.
Merci pour tes lumières
Gilles

Merci SuperBouly 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de SuperBouly
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 22 mars 2007 à 21:28
Commenter la réponse de nhervagault
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 22 mars 2007 à 22:19
0
Merci
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
Commenter la réponse de SuperBouly
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 24 mars 2007 à 14:17
0
Merci
Salut,

Tu devrais mettre la partie de code source utilisé pour quelqu'un qui cherchera comment faire cette manipulation.
Commenter la réponse de nhervagault
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 25 mars 2007 à 07:07
0
Merci
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
Commenter la réponse de SuperBouly

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.