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 :

contrôle de saisie zone de texte


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 13
    Points
    13
    Par défaut contrôle de saisie zone de texte
    bonjour,

    J'ai un formulaire avec 3 zones de texte

    Je voudrai rendre la saisie des 3 champs obligatoire.

    J'ai essayé 2 solutions :
    - Mettre Est Pas Null dans la propriété valide si de chaque zone de texte

    - en VBA : sur événement clic du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If ((champs1.Value = "") Or (champs2.Value = "") Or (champs3.Value = "")) Then
     
     MsgBox ("Veuillez remplir tous les champs")
     
     Else
     
       DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
     
     End If
    Aucune des 2 solutions ne marche

    Merci d'avance

  2. #2
    Membre régulier Avatar de Frog74
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Essai quelquechose du genre


    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
    29
    if Isnull(Champ1.value)=false and Isnull(Champ3.value)=false and Isnull(Champ3.value)=false then
     
        instruction
     
    elseif Isnull(Champ1.value)  and Isnull(Champ2.value) then
     
       msgbox("Veuillez remplir : " & me.Champ1.name & " " & me.Champ2.name)
     
    elseif Isnull(Champ1.value)and Isnull(Champ3.value) then
     
       msgbox("Veuillez remplir : " & me.Champ1.name & " " & me.Champ3.name)
     
    elseif Isnull(Champ2.value) and Isnull(Champ3.value) then
     
       msgbox("Veuillez remplir : " & me.Champ2.name & " " & me.Champ3.name)
     
    elseif Isnull(Champ1.value) then
     
       msgbox("Veuillez remplir : " & me.Champ1.name)
     
    elseif Isnull(Champ2.value) then
     
       msgbox("Veuillez remplir : " & me.Champ2.name)
     
    elseif Isnull(Champ3.value) then
     
       msgbox("Veuillez remplir : " & me.Champ3.name)  
     
    end if

  3. #3
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Moi je fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim rep As Integer
    If IsNull(Me.txtNom) Or IsNull(Me.txtPrenom) Or IsNull(Me.txtTel) Or IsNull(Me.txtMail) Then
        rep = MsgBox("Veuillez remplir tous les champs", vbCritical + vbOKOnly, "Information manquante...")
    Else
        'Tout les champs ont été remplis donc tu peux continuer ton code
    End If
    Bonne continuation

    Pour la solution proposée par Frog74, elle propose un message d'erreur personnalisé, en fonction du champ qui n'aura pas été rempli par l'utilisateur.
    Ce dernier sait donc le champ qu'il n'a pas rempli.
    Cependant, je pense qu'on peut l'optimiser en utilisant un Select Case, parce que les imbrications de Si, ce n'est pas très optimisé vu qu'il y a un test d'effectué pour chaque champ existant, donc s'il y en beaucoup, c'est pas terrible ...

    A toi de voir, mais si tu as peu de champs ou que tu veux pas trop te prendre la tête avec la gestion des erreurs, tu peux utiliser mon code, en revanche, un message personnalisé peut être intéressant si tu as beaucoup de champs, mais dans ce cas, il faudra améliorer le code de Frog74, je pense
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  4. #4
    Membre régulier Avatar de Frog74
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    Désolé me suis trompé , regarde à nouveau mon pioste précédent il marche.

    Je pensais faire en sorte de traiter tous les cas et dire à l'utilisateur quels champs il n'avait pas rempli.

  5. #5
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Qu'est ce que tu as changé ?
    Parce qu'il y a toujours les imbrications de Si ...
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  6. #6
    Membre régulier Avatar de Frog74
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 171
    Points : 70
    Points
    70
    Par défaut
    je m'étais trompé dans les test et j'avais oublié des cas et j'ai fais un EDIT

  7. #7
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Humm, et avec un Select Case, ne serait-ce pas mieux ?
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 101
    Points : 96
    Points
    96
    Par défaut
    Bonjour

    Deux solutions :
    Tu modifies les propriétés dans la table directement.
    ==> mettre la propriété "Null interdit " de chaque champ à OUI

    L autre dans l'evenement beforeupdate de ton formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Form_BeforeUpdate(Cancel As Integer)
    Dim pb As Boolean
    pb = False
    If Nz(Me.Champ1, "") = "" Then MsgBox "valeur 1": pb = True
    If Nz(Me.Champ2, "") = "" Then MsgBox "valeur 2": pb = True
    If Nz(Me.champ3, "") = "" Then MsgBox "valeur 3": pb = True
    If pb Then Me.Undo
    End Sub

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 13
    Points
    13
    Par défaut commentaire
    Est-il normal que les données soient enregistrées alors que le code est en commentaire !!!?

    Le contrôle de saisie n'a pas l'air de fonctionner non plus!

    Je vais tester le code de azertix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    If IsNull(DateFacture.Value) = False And IsNull(MontantFacture.Value) = False And IsNull(DateAccord.Value) = False And IsNull(numtitre.Value) = False Then
     
        'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
     
     ElseIf IsNull(DateFacture.Value) = False Then
     
     MsgBox ("Veuillez remplir :" & Me.DateFacture.Name)
     
     End If
    merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Points : 13
    Points
    13
    Par défaut ok
    Merci à tous le code de azertix fonctionne.

  11. #11
    Membre éprouvé Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 958
    Points : 937
    Points
    937
    Par défaut
    Je t'en prie
    Content d'avoir pu t'aider.
    Tu dois avoir un bouton pour signaler ton problème comme résolu
    Si ma réponse vous a été utile pensez à voter Pour

    Avant de poster sur le forum Access :
    FAQ > SOURCES > COURS > FORUM > GOOGLE
    Pas de question par MP ou je mords


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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/12/2010, 16h28
  2. SQL comme source de contrôle d'une zone de texte
    Par voxov dans le forum VBA Access
    Réponses: 0
    Dernier message: 21/12/2010, 13h04
  3. Réponses: 4
    Dernier message: 25/08/2008, 15h08
  4. Réponses: 12
    Dernier message: 03/12/2007, 19h41
  5. controle saisie zone de text
    Par Emcy dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 01/03/2007, 14h50

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