| |
Consulter les messages sans réponse | Consulter les sujets actifs
| Auteur |
Message |
|
Gandalf The White
|
Publié: 31 Mai 2005, 11:32 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
Je veux qu'un simple msg d'erreur apparaissent si l'utilisateur n'entre pas de donnée
voici ma ligne de code
If txt_6 = ??? Then
MsgBox "Veuillez spécifier une série de traverse valide", vbCritical, "Erreur"
Exit Sub
End If
les ??? représente la constante que je ne connais pas
merci 
|
|
| Haut |
|
 |
|
Jump
|
Publié: 31 Mai 2005, 11:38 |
|
Inscription : 07 Jan 2002, 00:24 Message(s) : 5834
|
Ça valide si la donnée est vide ou non. Ça ne valide pas le format, pour valider le format il faudrait avoir la validation a réaliser. Dépendant du format ça peut demander une fonction a part.
Code : If len(txt_6) = 0 Then MsgBox "Veuillez spécifier une série de traverse valide", vbCritical, "Erreur" Exit Sub End If
_________________ This posting is provided "AS IS" with no warranties, and confers no rights! ©2006 - 2014 Jump
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 31 Mai 2005, 11:46 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
|
| Haut |
|
 |
|
Rank
|
Publié: 31 Mai 2005, 13:38 |
|
Inscription : 28 Jan 2003, 18:08 Message(s) : 213 Localisation : Charny
|
len(), c'est une fonction qui retourne un integer (entier) égal au nombre de caractère dans une string (chaine)
mais je crois que
Code : If isnull(txt_6) or txt_6 = vbNullstring Then
serais plus efficace!

_________________ Rank
cold silence has a tendency to atrophy any sense of compassion
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 31 Mai 2005, 15:30 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
|
Ok c'est nickel...
question #2
je fait un formulaire sous access mais je veux que la personne n'entre que des chiffres et non des lettres...
If txt_inter_entrée = " " And txt_inter_sortie = " " Then
MsgBox "Veuillez n'entrer que des intervalles en chiffres s.v.p", vbCritical, "Erreur"
Exit Sub
End If
Donc si elle entre une lettre, le msg d'erreur suivant apparait...
comment dire au logiciel de ne pas tenir compte des lettre et de retourner le msg d'erreur. Les " " n'étant ce que je ne sais pas !!!
merci 1000 fois
|
|
| Haut |
|
 |
|
Jump
|
Publié: 31 Mai 2005, 16:38 |
|
Inscription : 07 Jan 2002, 00:24 Message(s) : 5834
|
Rank a écrit: len(), c'est une fonction qui retourne un integer (entier) égal au nombre de caractère dans une string (chaine) mais je crois que Code : If isnull(txt_6) or txt_6 = vbNullstring Then serais plus efficace!  Il y a 2 manières de base pour déterminer si une variable de type string contient du texte: len(x) > 0 et x <> "". Il ne faut pas utiliser isNull: Citer: The Null value indicates that the Variant contains no valid data. Null is not the same as Empty, which indicates that a variable has not yet been initialized. It is also not the same as a zero-length string (""), which is sometimes referred to as a null string. Même chose pour vbNullString: Citer: Not the same as a zero-length string (""); used for calling external procedures.
_________________ This posting is provided "AS IS" with no warranties, and confers no rights! ©2006 - 2014 Jump
|
|
| Haut |
|
 |
|
Jump
|
Publié: 31 Mai 2005, 16:46 |
|
Inscription : 07 Jan 2002, 00:24 Message(s) : 5834
|
Il y a quelques manières. Ça dépend essentiellement de la taille que pourra avoir le chiffre et son format. Une manière très simple serait :
Code : If isNumeric(txt_inter_entrée) And isNumeric(txt_inter_sortie) Then ' Valide Else ' Non valide End If Si tu veux que des entiers, tu peux tenter de faire une conversion de type (typecast) Code : Private function EstEntier(byval str_Texte as String) as Boolean dim lngVal as long on error resume next lngVal = CLng(txt_inter_entree) 'évite les accents dans les variables
if err.number <> 0 then EstEntier = false else EstEntier = true end if
' ou comme ceci: EstEntier = (err.number = 0) on error goto 0 end function Cette fonction n'acceptera pas de très gros chiffres. C'est possible de convertir vers un double et de voir s'il y a des données après le point. Code : Private Function EstEntier(ByVal str_Texte As String) As Boolean
' Le plus gros nombre qui puisse être valider est un entier contenant un suite de 308 fois le nombre 9 Dim dblNIP As Double On Error Resume Next dblNIP = CDbl(str_Texte) EstEntier = ((Err.Number = 0) And (dblNIP - Int(dblNIP) = 0)) On Error GoTo 0
End Function
_________________ This posting is provided "AS IS" with no warranties, and confers no rights! ©2006 - 2014 Jump
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 31 Mai 2005, 17:15 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
|
ok merci je vais essayer cela demain au bureau !
et je vous donnent des nouvelles
bye
|
|
| Haut |
|
 |
|
the_connected
|
Publié: 31 Mai 2005, 18:31 |
|
Inscription : 26 Fév 2003, 12:18 Message(s) : 443
|
|
Je vais faire un ajout pour ceux qui codent en .NET
Pour vérifier si une chaine est vide en .NET, la meilleure méthode est d'utiliser string.empty qui est une constante partagé et qui ne demande pas la construction et la destruction d'un objet pour faire la comparaisson.
_________________ Asus A7N8X Deluxe v2.0 | Athlon XP Barton 2500+@3200+ | 1024mo DDR 3200 | BFG Geforce 6600GT 128mo | Western Digital 160go 7200rpm | Maxtor 40go 7200rpm | Altec Lansing ATP4 | Samsung SyncMaster 763MB | Fan CoolerMaster Aero 7+ | Sennheiser HD212 Pro
|
|
| Haut |
|
 |
|
ASP Kid
|
Publié: 01 Juin 2005, 21:28 |
|
Inscription : 06 Fév 2002, 22:42 Message(s) : 185 Localisation : Québec
|
|
Pour répondre à ta question #2, tu n'as qu'a spécifier un format nombre (dans la propriété format) et Access va faire tout le travail ! Même chose pour les champs date.
_________________ HTH
 This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 02 Juin 2005, 08:50 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
ASP Kid a écrit: Pour répondre à ta question #2, tu n'as qu'a spécifier un format nombre (dans la propriété format) et Access va faire tout le travail ! Même chose pour les champs date.
c-a-d ?
merci
|
|
| Haut |
|
 |
|
Jump
|
Publié: 02 Juin 2005, 09:02 |
|
Inscription : 07 Jan 2002, 00:24 Message(s) : 5834
|
|
Si tu as un formulaire, les textbox ont une liste de propriétés (name, text, top, ... et format)
_________________ This posting is provided "AS IS" with no warranties, and confers no rights! ©2006 - 2014 Jump
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 02 Juin 2005, 09:18 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
|
en effet...
autre question...
pour le If isNumeric
pour un textbox ou les intervalle de nombre sont séparé de virgule et de point
ie:
Veuillez sélectionnner vos formulaires
1,2,3,5,56
ou 1.3.5.6.87.9
le If isNumeric ne fonctionne pas !!
merci
|
|
| Haut |
|
 |
|
JR
|
Publié: 02 Juin 2005, 10:34 |
|
Inscription : 07 Jan 2002, 12:16 Message(s) : 2519
|
|
Normal
à
1.2.3 c'est pas un numérique.
Fait toi une méthode sur le keyDown
et accepte uniquement les KeyCode entre 48-57 (0 à 9)
ainsi que 188 et 190 . et ,
et 8 (backspace)
_________________ - Chroniqueur Jeux Vidéo PS2 - PS3 - PSP - GameCube - Wii - Jeux PCJouez.com
- Champion Pool Hockey Micro.Info 2005-2006 ET 2006-2007
|
|
| Haut |
|
 |
|
Gandalf The White
|
Publié: 02 Juin 2005, 10:58 |
|
Inscription : 06 Jan 2002, 23:24 Message(s) : 1472 Localisation : Québec
|
JR a écrit: Normal à 1.2.3 c'est pas un numérique.
Fait toi une méthode sur le keyDown
et accepte uniquement les KeyCode entre 48-57 (0 à 9) ainsi que 188 et 190 . et , et 8 (backspace)
ok je débute en vba alors si tu voudrais bien me donner une méthode valide je t'en serait reconnaissant
de plus mon texte box n'a pas de fonction keydown, il doit abosolument cliquer sur un bouton "validé"
|
|
| Haut |
|
 |
Qui est en ligne ? |
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s) |
|
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum
|
|
|
|