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

IHM Discussion :

vérifier qu'un champ est vide dans un formulaire


Sujet :

IHM

  1. #1
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut vérifier qu'un champ est vide dans un formulaire
    Je sèche, je sèche et j’espère que vous pourrez m’aider. Les questions sur les champs vides à vérifier sont venus souvent dans ce forum et j’avais noté quelques discussions pour résoudre un problème que j’ai et que vous expose.
    Je m’y suis remis dessus cette après midi, mais sans résultat.

    Dans un formulaire qui est basé sur une table, je tente de vérifier la saisie des initiales (3 caractères) dans une zone de texte que j’ai appelé initiales (2 premières lettres et dernière lettre du nom)

    Sur l’événement avant MAJ de la zone de texte ‘initiales’ j’ai associé le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub initiales_BeforeUpdate(Cancel As Integer)
    MsgBox EstVide(Me.initiales.Text)
     
    If Len(Me.initiales) < 3 Or Len(Me.initiales) > 3 Then
    reponse = MsgBox(" veuillez entrer les initiales du nom avec les 2 premières lettres et la dernière  ", 0)
     
    With Me!initiales
     .SelStart = 0
     .SelLength = Len(.Value)
    Cancel = True
    End With
     
    End If
    End Sub
    La fonction EstVide vient d’une discussion précédente sur les champs vides ( voir ici ) et correspond à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function EstVide(val)
    EstVide = False
    If IsNull(val) Or IsEmpty(val) Or Len(val) = 0 Then
        EstVide = True
    End If
     
    End Function
    J’ai mis le MsgBox pour débuger momentanément. Cette routine fonctionne très bien lorsque l’utilisateur ne rentre pas les 3 caractères requis. Par contre elle ne détecte pas le champ vide. Curieusement lorsque l’utilisateur tape d’abord un caractère, puis l’efface, puis tapes <ENTER> le MsgBox m’affiche bien que le champ est vide.
    Il me semble qu’à l’entrée de la zone de texte le champ n’est pas vide (j’ai bien vérifié sur un nouvel enregistrement) et j’ai tenté de mettre le champ à vide par du code sur événement sur entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub initiales_Enter()
    Me.initiales.Value = ""
    End Sub
    Cela ne change rien. Donc pour résumer je souhaite vérifier que ma zone de texte est vide et si c’est le cas afficher un message d’erreur et revenir à la saisie de cette zone de texte.

    Quelqu’un a une idée ??? Merci de votre aide
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonsoir,
    Je n'arrive pas à saisir exactement la demande alors je fais "mon marché" et reprends 2/3 points :
    Citation Envoyé par dr_feelgood
    Dans un formulaire qui est basé sur une table, je tente de vérifier la saisie des initiales (3 caractères) dans une zone de texte que j’ai appelé initiales (2 premières lettres et dernière lettre du nom)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub initiales_Enter()
    Me.initiales.Value = ""
    End Sub
    Cela ne change rien. Donc pour résumer je souhaite vérifier que ma zone de texte est vide et si c’est le cas afficher un message d’erreur et revenir à la saisie de cette zone de texte.
    Pour mettre à vide et qu'access réagisse on peut essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub initiales_Enter()
    Me.initiales = Null
    End Sub
    D'autre part pour les champs oubliés par l'utilisateur le code de Jessy SEMPERE :
    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
    Public Function DataNull() As String
     
        Dim frm As Form
        Dim ctl As Control
        Dim strMsg As String
     
        Set frm = Screen.ActiveForm
     
        For Each ctl In frm.Controls
            If ctl.ControlType = acTextBox _
            Or ctl.ControlType = acListBox _
            Or ctl.ControlType = acComboBox Then
                If IsNull(ctl.Value) Or ctl.Value = "" Then _
                    strMsg = strMsg & vbCrLf & vbTab & "- " & ctl.Name
            End If
        Next
     
        If strMsg <> "" Then DataNull = "Vous devez saisir : " & vbCrLf & strMsg
     
    End Function
    Cette fonction permet de retourner une chaîne contenant le nom des contrôles de type :

    ..............zone de texte,
    ..............zone de liste,
    ..............zone de liste modifiable.

    qui n'ont pas été renseignés dans un formulaire.

    Pour utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_UnLoad (Cancel As Integer)
     
    Dim strMsg As String
     
    strMsg = DataNull
    If strMsg <> "" Then
            Cancel = True
            MsgBox strMsg, vbCritical
    End If
     
    End Sub
    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  3. #3
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    je pense que mon problème vient du fait que je vérifie le contenu du champ avant la MAJ

    Ce que je cherces à savoir, c'est pourquoi un champ qui devrait être vide (logiquement) n'est pas considéré comme vide.

    Je vais tenter la solution que tu me proposes.

    Par contre le code de Jessy ne me servira a rien, puisqu'il teste les valeurs de champ, bien après leur MAJ
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,
    Citation Envoyé par dr_feelgood
    Ce que je cherces à savoir, c'est pourquoi un champ qui devrait être vide (logiquement) n'est pas considéré comme vide.
    Un début de réponse : http://www.developpez.net/forums/sho...d.php?t=285354

    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/02/2011, 09h02
  2. Vérifier qu'une table est vide dans le datastore
    Par argonath dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 20/03/2010, 18h47
  3. rendre grisé un DateTimePicker si un champ est vide dans la base
    Par loic20h28 dans le forum Windows Forms
    Réponses: 14
    Dernier message: 03/06/2008, 11h23
  4. [Tableaux] Vérifier si un champ est vide !
    Par Tr@nkill dans le forum Langage
    Réponses: 9
    Dernier message: 16/05/2006, 16h11
  5. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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