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 :

erreur d'arguments dans appel de procédure


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Data manager en recherche clinique
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Data manager en recherche clinique

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 9
    Points
    9
    Par défaut erreur d'arguments dans appel de procédure
    Bonjour,
    J'ai une table avec des données de biologie et un formulaire pour faire la saisie des données. Parfois la donnée n'est pas disponible donc j'ai un champ "non fait".
    Si la donnée est disponible, elle aura une valeur x et "non fait" aura la valeur Null. Si la donnée n'est pas disponible, elle aura la valeur Null et "non fait" aura la valeur "9" (en string).
    Sur mon formulaire, j'ai donc un controle pour faire la saisie et à côté une case à cocher pour "non fait". la case à cochée n'est pas liée au champ "non fait" car elle ne prend que les valeurs true/false et on me demande la valeur "9".
    Les lignes suivantes font le boulot mais il faut que je les répete pour chaque donnée. Veuillez m'excuser pour l'appellation CBO_xxx pour la case à cocher, si vous connaisez la convention de nommage, ça m'intéresse, sinon je chercherai plus tard.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Form_Load()
    'définition de l'affichage des boutons "Non fait" en fonction de la valeur dans la table et de l'affichage du controle qui correspond 
    'Hémoglobine
    	If Me.HgNF_Bio = 9 Then
    		Me.CBO_HgNF.Value = True
    		Me.Hg_Bio.BackColor = RGB(217, 217, 217)
    		Me.Hg_Bio.Locked = True
    		Me.Hg_Bio.Enabled = False
    	Else
    		Me.CBO_HgNF.Value = False
    	End If
    J'ai donc essayé de faire une fonction mais j'ai une erreur de type 13 "incompatibilité de type" au moment où j'appelle ma fonction
    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
     
    Public Sub ouverture_form_figer(controle_a_figer As Control, donneeNF As Control, CBO_NF As Control)
    'Procuédure à appeler à l'ouverture du formulaire, si dans la table la donnée est non faite, attribue la valeur
    'True à la case à cocher 'non fait' et fige le controle qui correspond à la donnée non faite
    	If donneeNF = 9 Then
    		CBO_NF.Value = True
    		controle_a_figer.BackColor = RGB(217, 217, 217)
    		controle_a_figer.Locked = True
    		controle_a_figer.Enabled = False
    	Else
    		CBO_NF.Value = False
    	End If
    End Sub
     
    Private Sub Form_Load()
    'définition de l'affichage des boutons "Non fait" en fonction de la valeur dans la table et de l'affichage du controle qui correspond 
    'Hémoglobine
    	ouverture_form_figer Me.Hg_Bio, Me.HgNF_Bio , Me.CBO_HgNF
    Pourriez vous m'aider?
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonsoir,
    il faut passer un paramètre de type contrôle en tant que contrôle du formulaire, cela implique de préciser la propriété Me.Controls("NomDuControle"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ouverture_form_figer Me.Controls(Me.Hg_Bio.Name), Me.Controls(Me.HgNF_Bio.Name), Me.Controls(Me.CBO_HgNF.Name)
    cbo est un préfixe usuel pour un contrôle de type ComboBox, donc conforme à la convention de nommage
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Data manager en recherche clinique
    Inscrit en
    Juin 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Data manager en recherche clinique

    Informations forums :
    Inscription : Juin 2018
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Merci
    Je n'arrivais pas à appeler la fonction donc j'ai fait les changements suivants :
    - dans ma table Bio, j'ai passé tous les champs "non fait" en oui/non
    - dans mon formulaire, pour ma case à cocher, j'ai mis une source contrôle, donc le champ correspondant "non fait"
    - j'ai modifié en conséquence ma fonction et l'appel
    - j'ai documenté le "non fait" et je vais le mettre dans mes transmissions car avoir un 9 au lieu d'un true/false, même si c'est une convention, c'est trop compliqué pour mon niveau actuel.
    Donc voici mon code qui marche

    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
     
     
    Public Sub ouverture_form_figer(donneeNF As Boolean, controle_a_figer As Control)
    'Procédure à appeler à l'ouverture du formulaire, si dans la table la donnée est non faite fige le controle qui correspond à la donnée non faite
        If donneeNF = True Then
            controle_a_figer.BackColor = RGB(217, 217, 217)
            controle_a_figer.Locked = True
            controle_a_figer.Enabled = False
        End If
    End Sub
     
    Private Sub Form_Load()
    'définition de l'affichage des champs bio en fonction de la valeur du champ "non fait" correspondant
    'Hémoglobine
     
    ouverture_form_figer Me.HgNF_Bio.Value, Me.Controls(Me.Hg_Bio.Name)
     
    End Sub
    Merci beaucoup pour le coup de main

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/08/2017, 12h21
  2. erreur 5 Argument ou appel de procédure incorrect
    Par GuyDuLac dans le forum VBA Access
    Réponses: 0
    Dernier message: 14/01/2016, 20h23
  3. Réponses: 4
    Dernier message: 05/01/2011, 22h28
  4. Workbooks.Open : Erreur "Argument ou appel de procédure incorrect"
    Par Kropernic dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/07/2008, 09h49
  5. Réponses: 2
    Dernier message: 18/01/2008, 11h59

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