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

Access Discussion :

Argument ByRef incompatible


Sujet :

Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut Argument ByRef incompatible
    Bonjour,

    Pour accéder aux deux fonctions je les appelle avec ces lignes :

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Mja_Click() 
    Dim db As Database 
    Dim Tbl As TableDef 
    Dim Fld As Field 
    Set db = CurrentDb 
    Set Tbl = db.TableDefs("Tbl Adhérents") 
    '--- Supprime le champ XX par appel de le fonction SupprimerChamp 
          SupprimerChamp db, "tbl Adhérents", "XX" 
    '--- Renomme le champ AA par BB 
          RenommerChamp db, "tbl Adhérents", "AA", "BB" 
    End Sub
    Pour supprimerChamp ça fonctionne très bien.
    Mais pour RenommerChamp j’ai l’erreur suivante « Erreur de compilation type d’argument ByRef incompatible », le curseur s’arrete sur « db, » et je n’arrive pas à solutionner le problème.

    Ci-après fonction RenommerChamp :

    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
    Function RenommerChamp(db As DAO.Database, strNomTable As String, _ 
                 strAncienNomChamp As String, strNouveauNomChamp As String) As Boolean 
     
    On Error GoTo err 
     
    Dim Tbl As DAO.TableDef 
    '--- Récupèration de la table 
         Set Tbl = db.TableDefs(strNomTable) 
    '--- Renommé le champ 
         Tbl.Fields(strAncienNomChamp).Name = strNouveauNomChamp 
    '--- Renvoie la valeur True 
         RenommerChamp = True 
    Exit Function 
    '--- Gère les erreurs 
    err: 
         Select Case err.Number 
    '--- Si impossible de trouver l'élément dans la collection 
         Case 3265 
    '--- Si tbl=nothing alors tbl est la cause de l'erreur 
         If Tbl Is Nothing Then 
            MsgBox "Impossible de trouver la table : " & strNomTable 
         Else 
            MsgBox "Impossible de trouver le champ : " & strAncienNomChamp 
         End If 
         Case 3010, 3191: MsgBox "Le champ " & strNouveauNomChamp & " existe déjà" 
         Case Else: MsgBox "Une erreur inattendue est survenue" 
    End Select 
    End Function
    Merci pour votre aide,

    Salutations
    Jacques

  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 : 70
    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,

    Tu peux essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function RenommerChamp(db As Database,...
    Si ça ne marche toujours pas, montre le code qui marche. Les deux sub (Supprimer et renommer ) sont dans le même module?

    Cordialement,
    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Comment apelles tu cette fonction ?

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonsoir,

    Merci pour ton aide.
    J'ai effectué la modification et cela fonctionne correctement.

    Salutations
    Jacques

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

Discussions similaires

  1. [XL-2007] type d'arguments ByRef incompatible
    Par issoram dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 14/04/2019, 19h31
  2. Type d'argument ByRef incompatible
    Par caroto dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 22/09/2013, 13h45
  3. Type d'argument Byref incompatible
    Par Glherbier dans le forum VBA Access
    Réponses: 13
    Dernier message: 02/11/2010, 10h30
  4. [AC-2007] Type d'argument ByRef incompatible dans un module
    Par KIK83 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/12/2009, 15h01
  5. [VB]type d'arguments byref incompatibles
    Par kantelise dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 30/04/2006, 08h56

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