Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2011, 19h08   #1
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Par défaut Vérifier si un champ est vide avant de quitter un formulaire.

Bonjour,

voici ce qu'était mon problème : je voulais trouver un moyen de vérifier si un champ est vide dans mon formulaire et m'empêcher de quitter si c'était le cas.

J'ai trouvé dans la FAQ une solution de Philippe JOCHMANS que je remerci d'ailleurs.

La voici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Sub TestCtrl()
Dim Ctrl As control
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is TextBox Then
            If Ctrl.Value = "" Or IsNull(Ctrl.Value) Then
                MsgBox "Toutes les listes doivent avoir une information", vbOKOnly + vbExclamation, "Sélection"
                Ctrl.SetFocus
                Exit Sub
            End If
        End If
    Next Ctrl
End Sub
Cependant, je dois alors remplir TOUS les champs pour pouvoir quitter.
N'est-il pas possible de mettre des exceptions dans le code ?
Par exemple si je veux que la vérification porte sur tous les champs SAUF MonChamp1, MonChamp2 et MonChamp3.
Comment dois-je procéder ?

Merci d'avance pour vos réponses.
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 19h22   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonsoir
Et comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub TestCtrl()
Dim Ctrl As control
    For Each Ctrl In Me.Controls
        Select case Ctrl.name
            case in monChamp1, monChamp2, monchampn
            case else
               If TypeOf Ctrl Is TextBox Then
                 If Ctrl.Value = "" Or IsNull(Ctrl.Value) Then
                    MsgBox "Toutes les listes doivent avoir une information", vbOKOnly + vbExclamation, "Sélection"
                    Ctrl.SetFocus
                    Exit Sub
                 End If
               End If
       End select 
    Next Ctrl
End Sub
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 21h02   #3
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Bonjour, cela ne fonctionne pas...
J'ai déjà du modifier la ligne :
Code :
case in monChamp1, monChamp2, monchampn
par
Code :
case monChamp1, monChamp2, monchampn
(j'ai enlevé le "in").

Et quand je clique sur le bouton sur lequel est le code j'obtiens l'erreur d'exécution 94 : utilisation incorecte de Null.
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 06h40   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 609
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 609
Points : 30 959
Points : 30 959
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

En écrivant monChamp1 cela est pris comme une variable. Si c'est les noms des champs il faut les mettre entre guillemets (ou doubles quotes ").

Ta ligne deviendrait :

Code :
Case "monChamp1", "monChamp2", "monchamp3"
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 09h02   #5
Membre du Club
 
Inscription : juillet 2009
Messages : 210
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 210
Points : 47
Points : 47
Bonjour,
effectivement en rajoutant les guillemets cela fonctionne très bien.

Merci à vous deux.
Mat08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h54.


 
 
 
 
Partenaires

Hébergement Web