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 :

Fonction pour tester le remplissage de 3 champs dans un formulaire. [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Par défaut Fonction pour tester le remplissage de 3 champs dans un formulaire.
    Bonjour,

    Je suis encore novice, merci d'en tenir compte.

    Pour tester le remplissage de 3 cases dans un formulaire j'ai ce code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If (Nz(Me.DateEnlevement, "0") <> 0) And (((Nz(Me.NomRepreneur, "0") = 0) And (Nz(Me.VendeurRetour, "0") = 0))) _
    Or (Nz(Me.NomRepreneur, "0") <> 0) And (((Nz(Me.DateEnlevement, "0") = 0) And (Nz(Me.VendeurRetour, "0") = 0))) _
    Or (Nz(Me.VendeurRetour, "0") <> 0) And (((Nz(Me.DateEnlevement, "0") = 0) And (Nz(Me.NomRepreneur, "0") = 0))) _
    Or (Nz(Me.VendeurRetour, "0") <> 0) And (((Nz(Me.DateEnlevement, "0") <> 0) And (Nz(Me.NomRepreneur, "0") = 0))) _
    Or (Nz(Me.VendeurRetour, "0") <> 0) And (((Nz(Me.DateEnlevement, "0") = 0) And (Nz(Me.NomRepreneur, "0") <> 0))) _
    Or (Nz(Me.VendeurRetour, "0") = 0) And (((Nz(Me.DateEnlevement, "0") <> 0) And (Nz(Me.NomRepreneur, "0") <> 0))) _
    Then
    Ce code étant utilisé sur plusieurs formulaires et à plusieurs occasions dans le même formulaire, je souhaiterais créer une fonction publique qui fasse ces tests.
    J'ai créé la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Function Test3Remplis(Champ1 As String, Champ2 As String, Champ3 As String)
    Dim TestOK As Integer
    TestOK = 0
    If (Nz(Champ1, "0") <> 0) And (((Nz(Champ2, "0") = 0) And (Nz(Champ3, "0") = 0))) _
    Or (Nz(Champ2, "0") <> 0) And (((Nz(Champ1, "0") = 0) And (Nz(Champ3, "0") = 0))) _
    Or (Nz(Champ3, "0") <> 0) And (((Nz(Champ1, "0") = 0) And (Nz(Champ2, "0") = 0))) _
    Or (Nz(Champ3, "0") <> 0) And (((Nz(Champ1, "0") <> 0) And (Nz(Champ2, "0") = 0))) _
    Or (Nz(Champ3, "0") <> 0) And (((Nz(Champ1, "0") = 0) And (Nz(Champ2, "0") <> 0))) _
    Or (Nz(Champ3, "0") = 0) And (((Nz(Champ1, "0") <> 0) And (Nz(Champ2, "0") <> 0))) _
    Then
        TestOK = TestOK + 1
    End If
    End Function
    Ensuite j'essaie de faire appel à la fonction dans mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    Test3Remplis(Me.DateEnlevement, Me.NomRepreneur, Me.VendeurRetour)
     
    If TestOK > 0 Then
    Ici c'est une erreur de syntaxe, j'ai essayé plusieurs choses, sans arriver à faire fonctionner la fonction.

    Merci d'avance pour vos lumières

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 935
    Par défaut
    bonjour,
    essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function Test3Remplis(Champ1 As control, Champ2 As control, Champ3 As control)

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 031
    Par défaut
    Déjà la réponse de tee_grandbois doit te donner la solution.
    Mais tu peux améliorer l’algorithme.
    Si je comprends bien : tu veux que 1 ou 2 des 3 champs soient non nuls.
    Ca peut se traduire comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Function Test3Remplis(Champ1 As control, Champ2 As control, Champ3 As control) as integer
     
    If (  len(nz(Champ1))  +  len(nz(Champ2)) +  len(nz(Champ3)) > 0)  _
    AND (  len(nz(Champ1))  *  len(nz(Champ2)) *  len(nz(Champ3)) = 0)
    Then
        Test3Remplis= 1
    else
    Test3Remplis=0
    End If
    End Function
    Ensuite, pour appeler la fonction dans ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Form_BeforeUpdate(Cancel As Integer)
     
    if Test3Remplis(Me.DateEnlevement, Me.NomRepreneur, Me.VendeurRetour) = 1 then
    ...

  4. #4
    Membre éclairé
    Avatar de vavavoum74
    Homme Profil pro
    Responsable magasin
    Inscrit en
    Mars 2018
    Messages
    356
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable magasin

    Informations forums :
    Inscription : Mars 2018
    Messages : 356
    Par défaut
    Merci beaucoup Tee et Micniv, cela fonctionne maintenant parfaitement!

    Je met résolu

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/10/2015, 14h05
  2. Réponses: 2
    Dernier message: 18/06/2012, 10h28
  3. Fonction pour tester l'existence d'une page
    Par erwmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/09/2007, 00h06
  4. Fonction pour tester l'existence d'une image
    Par nais_ dans le forum Langage
    Réponses: 4
    Dernier message: 10/09/2006, 11h38
  5. utilisation du mid pour tester le début d'un champ
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 09/07/2004, 13h10

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