Access: désactiver bouton si chps non remplis

Résolu/Fermé
ELucas - 11 août 2010 à 14:12
 ELucas - 12 août 2010 à 13:49
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

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
Je remonte le sujet, car je suis sûr que vos neurones avisés sauront résoudre ce petit problème ^^
0
Le Pingou
Messages postés
11023
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
25 mai 2022
1 281
Modifié par Le Pingou le 12/08/2010 à 11:31
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
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
12 août 2010 à 11:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
Modifié par Gaunts le 12/08/2010 à 11:51
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
C'est exactement ça!!!!!!

Merci beaucoup Gaunts.
0
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
Modifié par Gaunts le 12/08/2010 à 13:32
Derien, bonne journée :)
0
Gaunts
Messages postés
1125
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 mars 2012
116
Modifié par Gaunts le 12/08/2010 à 13:42
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
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