raro
Messages postés140Date d'inscriptionvendredi 5 septembre 2003StatutMembreDernière intervention 7 avril 2016
-
22 avril 2005 à 15:34
raro
Messages postés140Date d'inscriptionvendredi 5 septembre 2003StatutMembreDernière intervention 7 avril 2016
-
25 avril 2005 à 13:49
salut tout le monde!
je suis en train faire une petite application genre "visdata" et j'ai un problème dans mon code que voici:
Sub text_licence_lostfocus()
'regle gestion: la saisie doit comporter 15 chiffres ni plus ni moins et pas de lettres
'si je suis postionner ailleurs que sur la zone texte licence alors
If Screen.ActiveControl.Name <> "texte_licence" Then
'si la zone texte de text_licence est vide alors
If text_licence = "" Then
'envoi message
MsgBox "la saisie de 15 caractères numérique est obligatoire"
'repositionner le focus sur text_licence
text_licence.SetFocus
Exit Sub
End If
End If
'verification du nombre de caractère qui doit être de 15
Dim j As Integer
j = 0
For j = 1 To Len(text_licence.Text)
'si le nombre de caratères saisi dans text_licence est différent de 15
If Len(text_licence.Text) <> 15 Then
'envoi message
MsgBox "il faut 15 caractères numériques"
'remettre text_licence à blanc
text_licence.Text = ""
'repositionner le focus sur text_licence
text_licence.SetFocus
Exit Sub
End If
Next j
'verification du type de caractères saisi: numérique obligatoire
Dim i As Integer
i = 0
For i = 1 To Len(text_licence.Text)
'si un ou plusieurs caractères saisis sont différents de 0 à 9 alors
If UCase(Trim(Mid(text_licence.Text, i, 1))) Like "[!0-9]" Then
'envoi message
MsgBox "la saisie ne peut comporter que des chiffres"
'remettre text_licence à blanc
text_licence.Text = ""
'repositionner le focus sur text_licence
text_licence.SetFocus
Exit Sub
End If
Next i
'si tout est ok positionner le focus sur text_nom
text_nom.SetFocus
End Sub
Sub text_nom_lostfocus()
'regle gestion: la saisie ne doit comporter que des lettres
'si je suis postionner ailleurs que sur la zone texte licence alors
If Screen.ActiveControl.Name <> "text_nom" Then
'si la zone texte de text_licence est vide alors
If text_nom = "" Then
'envoi message
MsgBox "la saisie d'un nom est obligatoire"
'repositionner le focus sur text_licence
text_nom.SetFocus
Exit Sub
End If
End If
'texte_nom en majuscules
text_nom.Text = UCase(text_nom.Text)
'verification du type de caractères saisi: alpha obligatoire
Dim k As Integer
k = 0
For k = 1 To Len(text_nom.Text)
'si un ou plusieurs caractères saisis sont différents de A à Z alors
If UCase(Trim(Mid(text_nom.Text, k, 1))) Like "[!A-Z]" Then
'envoi message
MsgBox "la saisie ne peut comporter que des lettres"
'remettre text_nom à blanc
text_nom.Text = ""
'repositionner le focus sur text_nom
text_nom.SetFocus
Exit Sub
End If
Next k
'si tout est ok positionner le focus sur text_nom
text_prenom.SetFocus
End Sub
mon code "text_licence" tout seul fonctionne parfaitement
il doit y avoir un conflit entre "text_licence" et "text-nom" car
si je fais exprès de sortir de la zone de text_licence j'ai d'abord la
msgbox "la saisie de 15 caractères numérique est obligatoire" qui est
le bon message et ensuite le msgbox"la saisie d'un nom est
obligatoire"qui lui n'a rien à faire là puisqu'il s'agit du code
"text_nom" alors que je devrais toujours être dans le bout de code
"text_licence", le problème c'est que je ne peut plus sortir de mon
execution car les deux msgbox reviennent constamment à tour de role
j'espere que vous aurez la réponse et je vous dit à+
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 23 avril 2005 à 01:51
Idem Et de plus
Ta boucle for j = ......... ne te sert à rien donc à supprimer
il me semble que tu as oublié le Not devant tes Like
si tu sort de ta textbox la prochaine prend le focus puis tu renvoie le focus à la première donc la seconde le perd et exécute le code pas trés bon utilise validate plutot que lostfocus
Sub text_licence_lostfocus()
'regle gestion: la saisie doit comporter 15 chiffres ni plus ni moins et pas de lettres
'si je suis postionner ailleurs que sur la zone texte licence alors
If Screen.ActiveControl.Name <> "texte_licence" Then
'si la zone texte de text_licence est vide alors elle fait mois de 15 caractères
If Len(text_licence) <> 15 Then
MsgBox "la saisie de 15 caractères numérique est obligatoire"
text_licence.SetFocus
Exit Sub
End If
End If
<STRIKE>'verification du nombre de caractère qui doit être de 15
Dim j As Integer
j = 0
For j = 1 To Len(text_licence.Text)
'si le nombre de caratères saisi dans text_licence est différent de 15
If Len(text_licence.Text) <> 15 Then
'envoi message
MsgBox "il faut 15 caractères numériques"
'remettre text_licence à blanc
text_licence.Text = ""
'repositionner le focus sur text_licence
text_licence.SetFocus
Exit Sub
End If
Next j
</STRIKE>
'verification du type de caractères saisi: numérique obligatoire
Dim i As Integer
For i = 1 To Len(text_licence.Text)
'si un ou plusieurs caractères saisis sont différents de 0 à 9 alors
If UCase(Trim(Mid(text_licence.Text, i, 1))) Not Like "[!0-9]" Then
MsgBox "la saisie ne peut comporter que des chiffres"
text_licence.Text = ""
'repositionner le focus sur text_licence
text_licence.SetFocus
Exit Sub
End If
Next i
'si tout est ok positionner le focus sur text_nom
text_nom.SetFocus
End Sub
Sub text_nom_lostfocus()
'regle gestion: la saisie ne doit comporter que des lettres
'si je suis postionner ailleurs que sur la zone texte licence alors
If Screen.ActiveControl.Name <> "text_nom" Then
'si la zone texte de text_licence est vide alors
If text_nom = "" Then
MsgBox "la saisie d'un nom est obligatoire"
'repositionner le focus sur text_licence
text_nom.SetFocus
Exit Sub
End If
End If
'texte_nom en majuscules
text_nom.Text = UCase(text_nom.Text)
'verification du type de caractères saisi: alpha obligatoire
Dim k As Integer
For k = 1 To Len(text_nom.Text)
'si un ou plusieurs caractères saisis sont différents de A à Z alors
If UCase(Trim(Mid(text_nom.Text, k, 1))) Not Like "[!A-Z]" Then
MsgBox "la saisie ne peut comporter que des lettres"
text_nom.Text = ""
text_nom.SetFocus
Exit Sub
End If
Next k
'si tout est ok positionner le focus sur text_nom
text_prenom.SetFocus
End Sub