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

VB 6 et antérieur Discussion :

Fonction Verifier Vide


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut Fonction Verifier Vide
    Salut

    j'ai cette fonction dans un module de 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
     
    Public Function verifvide(frm As Form)
    Dim vr As Controls
     
    For Each vr In frm.Controls
    If TypeOf vr Is TextBox Or TypeOf vr Is ComboBox Then
    If vr = "" Then
    MsgBox " une des zones est vide"
    vr.SetFocus
     
    End If
    End If
    Next
    End Function
    et je l'appel dans le button enregistrer comme suit =

    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
     
    Private Sub cmdenregis_Click()
     
    call  verifvide(frmajoutsous)
    sousc.AddNew
    affectation1
    sousc.Update
    cond.AddNew
    affectation2
    cond.Update
    Prm.AddNew
    affectation3
    Prm.Update
    vehicu.AddNew
    affectation4
    vehicu.Update
     Poli.AddNew
    affectation5
     Poli.Update
    MAJ_Garantie
    MAJ_reduction
     
    MsgBox "Enregistrement Réussie ", vbInformation, "Ajout..."
     
     
    End Sub
    Mais ça marche pas , si tout les zones sont rempli ils m'affiche le message ( " une des zones est vide" ) , et il enregistre

    j'ai pas compris ce que je doit faire :s

  2. #2
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Bonjour,

    Déjà une petite question : pourquoi faire une fonction alors qu'elle ne renvoie pas de donnée ???

    Autres chose : vr="" n'a aucun sens.

    Pour une TextBox et une ComboBox, il faut contrôler la propriété Text

    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
    Public Function verifvide(frm As Form) As Boolean
    Dim vr As Controls
    
    verifvide=True
    
    For Each vr In frm.Controls
       If TypeOf vr Is TextBox Or TypeOf vr Is ComboBox Then
          If vr.Text = "" Then
             MsgBox " une des zones est vide"
             vr.SetFocus
             verifvide=False
          End If
       End If
    Next
    End Function
    et pour la seconde partie
    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
    Private Sub cmdenregis_Click()
    Dim NonVide As Boolean
    
    NonVide=verifvide(frmajoutsous)
    If NonVide Then
       sousc.AddNew
       affectation1
       sousc.Update
       cond.AddNew
       affectation2
       cond.Update
       Prm.AddNew
       affectation3
       Prm.Update
       vehicu.AddNew
       affectation4
       vehicu.Update
        Poli.AddNew
       affectation5
       Poli.Update
       MAJ_Garantie
       MAJ_reduction
     
       MsgBox "Enregistrement Réussie ", vbInformation, "Ajout..."
    
    End If
    
    End Sub
    +

    Théo

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 22
    Par défaut
    oui tout a fait correcte ce que tu viens de mettre mais le probléme c'est qu'il connait pas le .Text et le .Setfocus il me donne seulment vr.count et vr.item :s

    et il me donne un bug sur le vr.Text

    et le bug dit :


    Erreur de Compilation :
    Methode ou membre de données introuvables



  4. #4
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Alors sépare les traitements pour les TextBox et les ComboBox

    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
    For Each vr In frm.Controls
       If TypeOf vr Is TextBox Then
          If vr.Text = "" Then
             MsgBox " une des zones est vide"
             vr.SetFocus
             verifvide=False
         End If
       ElseIf TypeOf vr Is ComboBox 
         If vr.ListIndex = -1 Then
             MsgBox " une des zones est vide"
             vr.SetFocus
             verifvide=False
          End If
       End If
    Next
    End Function
    Et dans ce cas tu regardes la sélection des ComboBox

    +

    Théo

  5. #5
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    salut

    Et comme ceci:
    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
    Public Function verifvide(frm As Form) As Boolean
    Dim vr As Control
    
    verifvide = True
    
    For Each vr In frm.Controls
       If TypeOf vr Is TextBox Or TypeOf vr Is ComboBox Then
          If vr.Text = "" Then
             MsgBox " une des zones est vide"
             vr.SetFocus
             verifvide = False
          End If
       End If
       Exit For 'sinon autant de boîte de message que de contrôle vide
    Next
    End Function

  6. #6
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Citation Envoyé par zazaraignée
    salut

    Et comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Exit For 'sinon autant de boîte de message que de contrôle vide

    Encore mieux : je n'y avais pas pensé


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

Discussions similaires

  1. fonction verifier une date
    Par kratos60 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 03/01/2011, 15h49
  2. [XL-2000] Trier en fonction cellule vide ou rempli
    Par Shikam dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/05/2010, 09h33
  3. fonction verifier date
    Par kaking dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/04/2009, 15h38
  4. [VBA][03] Erreur dans une fonction qui vide des tables
    Par NiKoTiNe dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/04/2007, 14h13
  5. fonction verifiant le mot de passe
    Par tortuegeniale65 dans le forum Oracle
    Réponses: 30
    Dernier message: 06/01/2005, 09h54

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