IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Changement de nom de table


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Points : 49
    Points
    49
    Par défaut Changement de nom de table
    Bonjour j'ai un probleme avec mon code qui ne veut pas tourner correctement...Il me dit qu'il y a un probleme...Je veux en gros a partir d'un fichier excel changer le nom de certain champs de plusieurs table access.

    Voici mon code






    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Function RenommerChamp(NomTable As String, Ancien As String, Nouveau As String) As Boolean
    On Error GoTo err:
    Dim MCat As New ADOX.Catalog
    Dim MTable As ADOX.Table
    Dim MField As ADOX.Column
    Set MCat.ActiveConnection = CurrentProject.Connection
    Set MTable = MCat.Tables(NomTable)
    Set MField = MTable.Columns(Ancien)
    MField.Name = Nouveau
    RenommerChamp = True
    err:
    Set MCat = Nothing
    Set MTable = Nothing
    Set MField = Nothing
    End Function
     
     
     
    Sub essai()
     
    Dim MaBase As String
    MaBase = "E:\Projet GDP\Projet Marie Alice\base.accdb"
     
    Set AccessCn = New ADODB.Connection
    AccessCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                    "Data Source=" & MaBase
     
     
    MsgBox RenommerChamp("AC#CA", "Date", "Dateseance")
     
     
     
    End Sub
    Merci!

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Je ne suis pas sûr que l'on puisse faire cela avec ADOX dans une base Access...

    Par contre avec DAO, cela baigne!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Function RenommerChampDAO(NomTable As String, Ancien As String, Nouveau As String) As Boolean
    Dim oDb As DAO.Database
     
    On Error GoTo lblErreur:
        Set oDb = CurrentDb
     
        oDb.TableDefs(NomTable).Fields(Ancien).Name = Nouveau
        RenommerChampDAO = True
     
    lblSortie:
        Set oDb = Nothing
        Exit Function
     
    lblErreur:
        RenommerChampDAO = False
        GoTo lblSortie
     
    End Function
    Cordialement,

    PGZ

  3. #3
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Points : 49
    Points
    49
    Par défaut
    Merci!
    Le code marche parfaitement quand je met manuellement le nom de la table d'ACCESS.
    Cependant, lorsque je fais une boucle pour changer tt le meme champs de toute mes feuilles, le programme tourne mais ne me change rien du tout...


    Codetitre1 correspond au nom du champs que j'ai mis sur la feuil4 de mon fichier excel
    AC#PA
    PA#PA
    ACA#PA
    ...


    Sauriez vous d'ou vient mon probleme?
    Merci!





    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Function RenommerChampDAO(NomTable As String, Ancien As String, Nouveau As String) As Boolean
    Dim oDb As DAO.Database
     
    On Error GoTo lblErreur:
        Set oDb = DAO.OpenDatabase("E:\Projet GDP\Projet Marie Alice\base.accdb", False, False)
     
        oDb.TableDefs(NomTable).Fields(Ancien).Name = Nouveau
        RenommerChampDAO = True
     
    lblSortie:
        Set oDb = Nothing
        Exit Function
     
    lblErreur:
        RenommerChampDAO = False
        GoTo lblSortie
     
    End Function
     
     
     
     
     
    Sub essai33()
    Dim codetitre1 As Variant
    Dim wb As Workbook
    Set wb = ThisWorkbook
     
     
     
    For j = 1 To 40
     
     
        codetitre1 = wb.Worksheets(4).Cells(j + 1, 1).Value
        codetitre1 = CStr(codetitre1)
     
        Call RenommerChampDAO("codetitre1", "Date", "Dateseance")
     
     
    Next j
     
    End Sub

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Hello.

    Tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call RenommerChampDAO(codetitre1, "Date", "Dateseance")


    PGZ

  5. #5
    Membre du Club
    Inscrit en
    Mai 2011
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 61
    Points : 49
    Points
    49
    Par défaut
    Super merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changement de nom Entreprise dans une table ?
    Par stefan73 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 02/12/2013, 10h39
  2. Changement de nom de table source
    Par Cece06 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/06/2013, 15h32
  3. [CR 9] Nom de table pas mis à jour après changement de la source de données
    Par zodeno dans le forum Connectivité
    Réponses: 3
    Dernier message: 29/09/2009, 13h36
  4. problème de changement de nom de table
    Par sebac dans le forum Access
    Réponses: 2
    Dernier message: 16/07/2007, 10h06
  5. Changement du nom de la table?
    Par issam16 dans le forum Access
    Réponses: 1
    Dernier message: 10/07/2006, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo