cs_loulou14
Messages postés10Date d'inscriptionmercredi 20 décembre 2006StatutMembreDernière intervention17 janvier 2007
-
20 déc. 2006 à 23:05
XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012
-
23 déc. 2006 à 00:09
j'ai fait une comparaison a l'aide if then dans le style
if a = b then
instuct
end if
le probleme c'ast que a et b ont une valeur "null" et mon instruc ne ce fait pas ca passe directement a la fin "end if"
je ne comprends pas pourquoi ça se passe comme vu que ma condition est correct
si quelqu'un pouvez m'expliquer pourquoi et bien sur une solution serait le bien venu
merci d'avance
Qu'entend tu pas null ? Nothing ?
a et b sont des entiers ? des string ? des varient ? des objets ?
suivant les cas, il faut employer "is" à la place de "="
cs_loulou14
Messages postés10Date d'inscriptionmercredi 20 décembre 2006StatutMembreDernière intervention17 janvier 2007 20 déc. 2006 à 23:18
a et b sont en réalité des zone texte qui recoivent des valeur de listes
lorsque la liste n'envoie rien dans la zone de texte cette dernière devient "null" (null correspond a sa valeur que j'ai vu en mode deboguage)
dans mon cas j'ai ecrit:
if me.text = "" then
instruct
end if
a ce moment la j'ai les deux valeurs qui sont "null" (en mode deboguage) mais l'instruction ne se fait pas
désolé j'ai voulu etre simple avec mes "a" et mes "b" mais c'est le contraire qui se produit
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 déc. 2006 à 00:18
Es-tu certain que le problème vient du If Me.Text = "" then ... ?
D'une part, il faut comprendre que "" est différent de " ". Donc, s'il y a un espace, ce n'est pas "rien".
Tu parles de a et b et dans ton exemple, tu n'écris que Me.Text
C'était bien pour montrer la comparaison de Me.Text (a) et du ""(b) ?
Finalement, et non le moindre
Est-ce bien de Me.Text dont on parle ou de Me.Text1.Text ?
(Text1 ou autre...)
cs_loulou14
Messages postés10Date d'inscriptionmercredi 20 décembre 2006StatutMembreDernière intervention17 janvier 2007 21 déc. 2006 à 00:29
effectivement au debut je parlais de a et b il faut oublié je voulais etre simple et enfin de compte j'ai planté tout le monde.
pour le if j'ai essayer "" et " " et j'ai meme creer une seconde zone de texte que j'ai mis volontairement null pour pouvoir ecrire:
if me.texte1 = me.texte2 then
et
if me.texte1.text =me.texte2.text then
a chaque fois ma ligne d'instruction est ignoré
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 déc. 2006 à 00:40
Si tu mettais toute ta procédure (si elle n'est pas trop longue) peut-être que ça nous aiderait.
Ou tu peux faire un test
if me.texte1 = me.texte2 then
Stop
Si le code arrête sur Stop, c'est que la condition est reconnue sinon, tu as raison et la condition est vraiment ignorée. Du coup, on ne cherchera pas ailleurs...
Note que je ne connais ton niveau de programmation. Peut-être que tu vas me trouver con de te proposer une chose de ce genre... ¦¬)
cs_loulou14
Messages postés10Date d'inscriptionmercredi 20 décembre 2006StatutMembreDernière intervention17 janvier 2007 21 déc. 2006 à 01:24
pour mon niveau je dirais debutant avec un petit +
en fait pour ce qui est de mon probleme
je clic sur une liste qui m'ouvre un formulaire qui contient des 3 zones de texte qui ont leur source de controle qui correspondent au trois colonnes de la liste du debut
lorsque les trois colonnes de la liste sont renseigner les 3 zones de textes prennent la valeur voulu comme je le veux car la premieres zone de texte prends la valeur de la colonne liees de la liste.
Mais les deux autres peuvent etre vide
D'ou j'ai mis ma ligne if then au chargement du formulaire pour que le formulaire se referme immediatement si les deux autres zones de texte seraient vide
Voici ma ligne de commande que j'ai placé à l'ouverture:
if me.texte2.text = "" then
if me.texte3.text = "" then
docmd.close
end if
end if
evidement pour la premiere ligne j'ai essayé tout ce que j'ai cité au dessus
en esperant que vous me comprendrais dans mes explications
Ca te servira à savoir quelles valeurs ont tes textbox. Oui je sais, il faut faire avec le débuggeur, mais moi j'ais pris l'habitude de faire ça alors hein... Venez pas me ruiner mes habitudes ! ;-)
cs_loulou14
Messages postés10Date d'inscriptionmercredi 20 décembre 2006StatutMembreDernière intervention17 janvier 2007 21 déc. 2006 à 02:17
pour 244968 Scalpweb le msg box ne fonctionne pas car il me dit :
"impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé."
j'ai donc creer un bouton sur la feuille pour executer le msgbox au cas ou mes zone de texte n'aurais pas été chargé et le probleme est le même.
=12357 XGuarden j'ai mis la premiere ligne c'est a dire
if me.texte2.text = nothing then
if me.texte3.text = nothing then
docmd.close
end if
end if
lorsque je l'execute il me dit:
"erreur de compilation:
utilisation incorrect de l'objet."
en surlignant le premier nothing
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 21 déc. 2006 à 03:15
En voyant le DoCmd, je me dis que tu dois travailler sur Access, non ?
Et tes textbox sont liés à ta table, oui/non ?
Est-ce que tes champs ont une valeur par défaut, du genre 0 ou autre ?
Pour le Nothing, on ne dit pas
If text1=Nothing
mais
If Is Nothing(Text1.Text)
et encore là...
Pour le AndAlso, là je suis confondu ...¦¬)
Je n'ai jamais vu ça (?)
Et si le MsgBox te lance ce genre de message, il s'agit peut-être de voir quand et comment il est appelé... c'est tout de même étonnant...
XGuarden
Messages postés259Date d'inscriptiondimanche 14 juillet 2002StatutMembreDernière intervention17 août 2012 21 déc. 2006 à 05:55
Ondirait que son code est a l'Extérieur d'une zone de code valide, mais is s'était lecas rien fonctionnerai. andalso est différent de and. and vérifie les deux condition tandit que andalso sarete des que la premiere est fause.sa pe uchanger gros de chose si la comparaison est sur le retour de fonction. If text1=Nothing est tres correcte.... mais comme j'Ai continuer mon exemple, le len est la méthode la plus rapide qui reste encore compréensible..... Mais pour répondre.. cespas normal que msgbox ne fonctionne pas, il devrai fonctionner partout sauf si tu a fait un truc du genre..... me.msgbox..... sa sa ne se peu pas...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 déc. 2006 à 07:55
Ca commence a devenir très embrouillé....
Moi, j'aimerais demander à loulou de bien vouloir en revenir à son tout premier post, celui où il disait :
"j'ai fait une comparaison a l'aide if then dans le style
if a = b then
instuct
end if
le probleme c'ast que a et b ont une valeur "null" et mon instruc ne ce fait pas ca passe directement a la fin "end if"
et de bien vouloir nous dire tout simplement dans quel événement de quel objet situé sur quoi il mettait ce code.
J'ai plusieurs doutes, en effet, que je vous cite dans l'ordre :
1) un événement qui n'existe pas (private sub quelquechose... écrit erronément à la main)
2) un événement au cours duquel tout n'est pas encore chargé
etc...
avant même d'aller plus loin dans les recherches de la cause.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 déc. 2006 à 11:53
Bonjour scalpwed,
1) Je n'ai vu l'utilisation d'un msgbox que plus loin .... et de façon inexacte
2) quid s'il compare des textes de textboxes non encore chargées (s'il a mis son code dans l'événement load de sa Form, par exemple) ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 déc. 2006 à 12:00
Voilà d'ailleurs ce qu'il a écrit un peu plus haut :
pour 244968 Scalpweb le msg box ne fonctionne pas car il me dit :
"impossible de faire référence à une propriété ou de la définir pour un contrôle si ce dernier n'est pas activé.('ce qui me fait penser que son code est dans le Form_load !!)"
j'ai donc creer un bouton sur la feuille pour executer le msgbox au cas ou mes zone de texte n'aurais pas été chargé et le probleme est le même.
=12357 XGuarden j'ai mis la premiere ligne c'est a dire
if me.texte2.text = nothing then ' et là : l'expression es erronnée !
if me.texte3.text = nothing then ' et là : l'expression es erronnée également !
docmd.close
end if
end if
lorsque je l'execute il me dit:
"erreur de compilation:
utilisation incorrect de l'objet."
en surlignant le premier nothing
Voilà pourquoi je disais que celà devenait embrouillé ... Une erreur est venue se substiotuer à l'autre ...
Je parie que tout est à cause du Load au lieu de l'Activate ...