OVH Cloud OVH Cloud

Masque de saisie

7 réponses
Avatar
Jacques
Bonjour,

J'ai un champ dont la valeur saisie doit toujours commenc=E9e par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations

7 réponses

Avatar
Gilbert
Bonjour,

Personnellement j'utilise 2 champs :
Une liste déroulante avec 3 choix possibles : Mlle, Mme, Mr
Un champ texte pour la saisie du nom.
Ca simplifie la saisie et tu peux toujours associer le contenu des 2 champs
pour le gérer comme tu veux.

--
Gilbert


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations
Avatar
Raymond [mvp]
Bonjour.

il faut placer une procédure de controle avant la maj et en profiter pour
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une utilisation
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une liste
déroulante contenant toutes les civilités avec valeur par défaut à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évite de controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations
Avatar
Jacques
Bonsoir,

Merci pour vos réponses.

Ta première solution Raymond me convient parfaitement seulement
comment imposser aussi un espace après le point de M. ????, MME. ????,
MLLE. ???? avant de saisir le Nom.

En faisant les essais j'ai saisie un Nom, puis en voulant supprimer ce
Nom et sortir du formulaire la msgbox "Erreur" s'est affiché.

Merci pour ton aide.

Salutations.



Bonjour.

il faut placer une procédure de controle avant la maj et en profiter po ur
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une utilisat ion
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une liste
déroulante contenant toutes les civilités avec valeur par défaut à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évite d e controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations


Avatar
Raymond [mvp]
en rajoutant un espace:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonsoir,

Merci pour vos réponses.

Ta première solution Raymond me convient parfaitement seulement
comment imposser aussi un espace après le point de M. ????, MME. ????,
MLLE. ???? avant de saisir le Nom.

En faisant les essais j'ai saisie un Nom, puis en voulant supprimer ce
Nom et sortir du formulaire la msgbox "Erreur" s'est affiché.

Merci pour ton aide.

Salutations.



Bonjour.

il faut placer une procédure de controle avant la maj et en profiter pour
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une utilisation
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une liste
déroulante contenant toutes les civilités avec valeur par défaut à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évite de
controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations


Avatar
Jacques
Re Bonsoir Raymond,

Pour les espaces ça marche.

Mais comment ne pas avoir l'affichage "Erreur" lorsqu'on supprime la
valeur de la zone de texte
et que l'on ferme le formulaire.

Salutations


en rajoutant un espace:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonsoir,

Merci pour vos réponses.

Ta première solution Raymond me convient parfaitement seulement
comment imposser aussi un espace après le point de M. ????, MME. ????,
MLLE. ???? avant de saisir le Nom.

En faisant les essais j'ai saisie un Nom, puis en voulant supprimer ce
Nom et sortir du formulaire la msgbox "Erreur" s'est affiché.

Merci pour ton aide.

Salutations.



Bonjour.

il faut placer une procédure de controle avant la maj et en profiter pour
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une utilis ation
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une li ste
déroulante contenant toutes les civilités avec valeur par défaut à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évite de
controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations




Avatar
Raymond [mvp]
Bonjour.

si tu supprimes les valeurs saisies et que tu fermes le formulaire
l'événement beforeupdate n'est pas exécuté.
néanmoins tu peux mettre:
If Nz(Me.Texte1, "") <> "" Then
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End If


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Re Bonsoir Raymond,

Pour les espaces ça marche.

Mais comment ne pas avoir l'affichage "Erreur" lorsqu'on supprime la
valeur de la zone de texte
et que l'on ferme le formulaire.

Salutations


en rajoutant un espace:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonsoir,

Merci pour vos réponses.

Ta première solution Raymond me convient parfaitement seulement
comment imposser aussi un espace après le point de M. ????, MME. ????,
MLLE. ???? avant de saisir le Nom.

En faisant les essais j'ai saisie un Nom, puis en voulant supprimer ce
Nom et sortir du formulaire la msgbox "Erreur" s'est affiché.

Merci pour ton aide.

Salutations.



Bonjour.

il faut placer une procédure de controle avant la maj et en profiter
pour
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une
utilisation
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une liste
déroulante contenant toutes les civilités avec valeur par défaut à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évite de
controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations




Avatar
Jacques
Bonjour Raymond,

Merci pour ton aide.
Le code fonctionne correctement.

Salutations.


Bonjour.

si tu supprimes les valeurs saisies et que tu fermes le formulaire
l'événement beforeupdate n'est pas exécuté.
néanmoins tu peux mettre:
If Nz(Me.Texte1, "") <> "" Then
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End If


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Re Bonsoir Raymond,

Pour les espaces ça marche.

Mais comment ne pas avoir l'affichage "Erreur" lorsqu'on supprime la
valeur de la zone de texte
et que l'on ferme le formulaire.

Salutations


en rajoutant un espace:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 3)) = "M. " Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 4)) = "MME " Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 5)) = "MLLE " Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonsoir,

Merci pour vos réponses.

Ta première solution Raymond me convient parfaitement seulement
comment imposser aussi un espace après le point de M. ????, MME. ????,
MLLE. ???? avant de saisir le Nom.

En faisant les essais j'ai saisie un Nom, puis en voulant supprimer ce
Nom et sortir du formulaire la msgbox "Erreur" s'est affiché.

Merci pour ton aide.

Salutations.



Bonjour.

il faut placer une procédure de controle avant la maj et en profiter
pour
charger d'autres valeurs en fonction de la saisie.
exemple:
Private Sub Texte1_BeforeUpdate(Cancel As Integer)
If UCase(Left(Me.Texte1, 2)) = "M." Then
Me.sEXE = 1
MsgBox "c'est un homme"
ElseIf UCase(Left(Me.Texte1, 3)) = "MME" Then
Me.sEXE = 2
MsgBox "c'est une dame"
ElseIf UCase(Left(Me.Texte1, 4)) = "MLLE" Then
Me.sEXE = 3
MsgBox "c'est une demoiselle"
Else
MsgBox "Erreur"
Cancel = True
End If
End Sub

tu en profites pour charger un champ sexe à 1, 2 ou 3 pour une
utilisation
ultérieure.

tu peux faire également le contraire ce qui serait beaucoup mieux.
ne pas faire frapper la civilité M. ou Mme ou Mlle mais placer une liste
déroulante contenant toutes les civilités avec valeur par défau t à M. et
l'opérateur sélectionne la civilité dans la liste, ce qui évi te de
controler
la saisie et de pouvoir disposer des valeurs plus tard.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Nouvelle base Access des communes françaises avec
longitude, latitude et 13246 sites internet officiels
http://ardecheearth.free.fr/basededonnees.htm


"Jacques" a écrit dans le message de news:

Bonjour,

J'ai un champ dont la valeur saisie doit toujours commencée par :

Soit M. ???????????
Soit MME. ???????
Soit MLLE. ??????

Comment faire pour refuser toutes autres valeurs.

Merci pour votre aide.

Salutations