Access: désactiver bouton si chps non remplis

Résolu
ELucas -  
 ELucas -
Bonjour!

J'ai un souci sous access 2003: j'ai un formulaire avec deux champs texte à remplir et plusieurs boutons lancant des macros.

Je désire rendre inactifs les boutons tant que les champs ne sont pas remplis.

Je ne connais nullement Visual Basic, et j'ai cherché longuement mais en vain la slution sur internet.

Merci par avance de votre aide!!!

Lucas.

10 réponses

  1. ELucas
     
    Je rajoute un petit truc:

    si possible, peut-on envoyer un message indiquant qu'il faut remplir préalablement les champs textes à l'utilisateur lorsqu'il clique sur les boutons sans avoir remplis la condition précitée?
    0
  2. ELucas
     
    Je remonte le sujet, car je suis sûr que vos neurones avisés sauront résoudre ce petit problème ^^
    0
  3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Vous pouvez passer par une procédure événementielle [Sur ouverture] du formulaire ou vous indiquez votre message (Msgbox) et ensuite il est aussi possible de rendre invisible vos boutons de commande des macros.
    Exemple:
    Private Sub Form_Open(Cancel As Integer)
    MsgBox ("Merci de remplir préalablement les champs textes.")
    Me.Nom du bouton.Visible = False
    .......
    End Sub


    Salutations.
    Le Pingou
    0
  4. Gaunts Messages postés 1390 Statut Membre 116
     
    Bonjour,

    Tu peux en VBA sur l'evenement click du bouton mettre une condition en début de fonction, indiquant que si le champ spécifié est vide, alors tu affiche un message d'erreur, et tu quittes la fonction directement avec un exit sub.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ELucas
     
    Et bien merci mais sans vouloir paraître ingrat, cela ne m'aide pas beaucoup :-s

    Je ne vos toujours pas comment rendre les boutons invisibles (ou inactifs plutôt) tant que mes champs texte ne sont pas remplis. Je ne souhaite pas voir apparaître de message dès l'ouverture du formulaire, mais seulement si l'utilisateur tente d elancer une macro sans avoir rempli les champs.

    En gros: Si les champs ne sont pas remplis, refuser l'activation des boutons et afficher un message indiquant qu'il faut remplir les champs textes.
    0
  7. Gaunts Messages postés 1390 Statut Membre 116
     
    Et bien par exemple, si tu veux vérifier que l'utilisateur a rempli le champ appelé "Différence", tu rentre ceci dans ton code évenement:

    If IsNull(Me.Différence.Value) Then  
        MsgBox "Veuillez remplir le champ Différence"  
        Exit Sub  
    End If  
    


    Ainsi grâce au Exit sub ton bouton n'aura aucun effet, et si le champ est bien rempli le code continuera(on n'entre pas dans le if) tu peux placer le code de ton bouton en dessous.
    0
  8. ELucas
     
    C'est exactement ça!!!!!!

    Merci beaucoup Gaunts.
    0
  9. Gaunts Messages postés 1390 Statut Membre 116
     
    Derien, bonne journée :)
    0
  10. Gaunts Messages postés 1390 Statut Membre 116
     
    Ah oui et pour vérifier si l'utilisateur n'a pas écrit du texte pour ensuite l'effacer, tu peux rajouter ça dans ton if :

    If IsNull(Me.Différence.Value) or Me.Différence.Value = "" Then   
        MsgBox "Veuillez remplir le champ Différence"   
        Exit Sub   
    End If

    Car si l'utilisateur écrit du texte puis l'efface, la veur ne sera plus égale à NULL, mais à une chaine vide: "". Voila !
    0
  11. ELucas
     
    Ok merci!! Je vais voir si je l'utilise, parce que pour ce cas j'avais déja une solution qui consiste à mettre "Est pas null" dans la partie Valide si de l'onglet Données des propriétés de mes champs texte, et avec un message d'erreur disant qu'il faut le remplir.
    Le problème était que ça ne marchait que si la personne avait déja tapé quelque chose dedans!!!

    Grâce à ton aide les deux se complètent, merci!
    0