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 :

[Formulaire] Activer un bouton de commande en fonction de champs


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut [Formulaire] Activer un bouton de commande en fonction de champs
    Bonjour,

    Comme je l'ai dit dans le titre, j'ai un formulaire avec différents champs à remplir. Une fois que c'est fait, il faut valider pour enregistrer et passer à un nouvel enregistrement.

    Pour vérifier que tous les champs sont bien remplis avant d'enregistrer, j'ai voulu désactiver le bouton "Valider" et il ne s'activera qu'une fois tous les champs remplis.
    J'ai réussi à faire ça avec un seul champ avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub affaire_LostFocus()
    BT_valider.Enabled = True
    End Sub
    mais en fait il y a 3 champs à remplir et je trouve pas comment faire

    Quelqu'un peut m'aider ?

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Ca peut le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub bouton_Click()
     If IsNull(Me!Champ1) Or IsNull(Me!Champ2) Or IsNull(Me!Champ3) Then
      MsgBox("Saisie incomplète")
      Exit Sub
     End If 
     
     ' Traitement 
     .....................
     
     
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Bonjour,
    J'ai essayé le code que tu m'as donné en essayant de combiner avec ce que j'avais fait, mais ça ne marche pas le bouton reste désactivé même si tous les champs sont remplis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub BT_valider_Click()
     If IsNull(Me!affaire) Or IsNull(Me!date) Or IsNull(Me!tempsPasse) Then
        MsgBox ("Saisie incomplète")
        Exit Sub
     Else
        BT_valider.Enabled = True
        DoCmd.Save acForm, "F_saisirTempsAffaire_salaries"
        DoCmd.GoToRecord , , acNewRec
     End If
    End Sub
    J'ai aussi essayé d'autres codes, mais le résultat reste le même..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est normal ton bouton reste désactiver, donc un clique dessus n'a aucun effet, il faut transformer ton code en sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub ActiveBTValider()
     If IsNull(Me!affaire) Or IsNull(Me!date) Or IsNull(Me!tempsPasse) Then
        MsgBox ("Saisie incomplète")
        Exit Sub
     Else
        BT_valider.Enabled = True
        DoCmd.Save acForm, "F_saisirTempsAffaire_salaries"
        DoCmd.GoToRecord , , acNewRec
     End If
    End Sub
    ensuite dans chaque événement After_Update de tes contrôles tu appelles cette routine avec

    Starec

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Ca ne marche pas

    En fait, je suis pas sûr de l'endroit où il faut mettre le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub ActiveBT_valider()
    If IsNull(Me!affaire) Or IsNull(Me!date) Or IsNull(Me!tempsPasse) Then
        MsgBox ("Saisie incomplète")
        Exit Sub
     Else
        BT_valider.Enabled = True
        DoCmd.Save acForm, "F_saisirTempsAffaire_salaries"
        DoCmd.GoToRecord , , acNewRec
     End If
    End Sub
    A partir directement du code du formulaire?

    Pour l'autre code, je pense que c'est bon.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Il faut le mettre dans le code du formulaire

    Starec

  7. #7
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Désolée, mais ça ne marche toujours pas. J'ai bien mis le code dans le formulaire, et "Call ActiveBTValider" dans les évènements après MAJ de chacun des champs concernés du formulaire. C'est bien ça pourtant non ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Tu as mis

    et
    Il y'a une petite différence, je te conseille d'enlever le _

    Si cela ne marche pas, mets le message d'erreur et où

    Starec

  9. #9
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Pourquoi desactive tu ton bouton puisque si tes champs ne sont pas renseigner cela envoi le message saisi imcomplete et que tant que tu n'a pas remplis ses champ tu n'ira pas plus loing
    Enfin! tu as peut etre tes raisons

  10. #10
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Oui peut-être.. mais de toute façon ça ne marche pas, le message d'erreur n'apparaît pas même si c'est incomplet et l'enregistrement se fait quand même (soit par un bouton, soit avec les tabulations).

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    Dans la sub remplace tes OR par des AND

    Dans les propriétés de ton formulaire contrôle si Cycle est sur "Enregistrement en Cours", à mon avis il est sur "tous les enregistrements"

    Starec

  12. #12
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    Cylce était bien sur tous les enregistrements.

    Finalement, j'ai arrêté l'idée de désactiver/activer le bouton valider comme la dit Renardo. C'est vrai que ce n'est pas trop utile... Donc sur le bouton valider j'ai mis ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub BTValider_Click()
    If IsNull(Me!affaire) Or IsNull(Me!date) Or IsNull(Me!tempsPasse) Then
        MsgBox ("Saisie incomplète")
        Exit Sub
     Else
        DoCmd.Save acForm, "F_saisirTempsAffaire_salaries"
        DoCmd.GoToRecord , , acNewRec
     End If
    End Sub
    Ca marche bien mais il manque quelque chose. En fait, s'il y a des champs qui ne sont pas complétés, le message d'erreur apparait bien et revient sur la saisie du formulaire, mais il enregistre quand même dans la table! Y a-t-il un code qui empêche l'enregistrement dans ce cas là?

  13. #13
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    voix peut etre au niveau de la fonction

  14. #14
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 145
    Points : 75
    Points
    75
    Par défaut
    C'est bon ça à l'air de marche maintenant!

    Merci beaucoup à vous trois!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/08/2009, 08h22
  2. Comment activer un bouton de commande que si nécessaire
    Par nabilfaouzi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/01/2008, 12h19
  3. Réponses: 9
    Dernier message: 12/12/2007, 21h52
  4. Réponses: 1
    Dernier message: 07/08/2007, 21h22
  5. Formulaire continu et boutons de commande
    Par Michel DELAVAL dans le forum Access
    Réponses: 1
    Dernier message: 31/08/2006, 21h02

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