denver78610
Messages postés29Date d'inscriptionmardi 20 avril 2010StatutMembreDernière intervention13 juillet 2010
-
13 juil. 2010 à 18:51
Profil bloqué -
14 juil. 2010 à 00:44
Bonjour à tous, j'espère que vous allez bien.
Je début en VB6 et je dois avoué que ce language me rend fou!!!
En effet après avoir découvert l'existance d'integer a une décimal... je me retrouve avec des comparaisons plutot louche....
If Not (CInt(variable_global.res(0, 0)) volume And CInt(variable_global.res(0, 1)) valeur) Then
avec le deboguer je lis :
variable_global.res(0, 0) = 28
volume = 28
variable_global.res(0, 1) = 197
valeur = 197
ce qui devrai nous faire
if not ( true AND true)
if not (true)
if false
or mon code passe dans le IF!!!!!!!! et a chaque fois en plus :(
je pensais que sa serai lier au type. En effet mon tableau res est un tableau de variant dans lequel je stock les retours de ma base de donné quant je lui demende des chiffres. Les données dans ma base sont des entiers et je format 2 double en integer pour les mettres dans les variables volume et valeur (elles déclaré en int), de la fasson suivante :
Dim volume, valeur As Integer
volume = IIf(Not IsNull(Format(variable_global.tabfiguresverres(variable_global.tabassosverrenonverre(0, numeu), i, 4), "#0.00") * 100), Format(variable_global.tabfiguresverres(variable_global.tabassosverrenonverre(0, numeu), i, 4), "#0.00") * 100, 0)
valeur = IIf(Not IsNull(Format(variable_global.tabfiguresverres(variable_global.tabassosverrenonverre(0, numeu), i, 5), "#0.00") * 100), Format(variable_global.tabfiguresverres(variable_global.tabassosverrenonverre(0, numeu), i, 5), "#0.00") * 100, 0)
sert, c'est pas très explicite mais le plus important y est, en effet j'utilise la fonction format pour arrondir mes variables a 2 décimals puis je les multipli par 100. Mes 2 valeurs viennent ici d'un tableau 3 dimentions tabfiguresverres dont la premiere dimention est stocker dans un autre tableau. Ce second tableau me permet simplement d'aligner les dimentions de mon tableau 3D avec un second tableau 3D. Je tien a préciser que toute ses manipulations sont nécessaire dans mon programme (arrondi + multiplication) et que ce n'est pas un coup de folie du débutant que je suis :D
fin bref vous devriez avoir apepres toute les information, sauf petetre que mes tableaux 3D sont du type variant mais vue que je stock sa dans un int sa ne doit rien changer, je pense... ^^
voila donc je vous rappel ma question, pourquoi le if me dit que mes variables n'ont pas la meme valeur alors qu'a l'affichage ce sont les memes?
Sans trop abusé j'aimerai une solution mais surtout une explication.
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 13 juil. 2010 à 23:26
Salut
Cela serait plus facile de t'aider si tu envoyais le bout de code sous code et choisi vb
Tu as marqué
if not ( true AND true)
if not (true)
if false
C'est ton raisonement ou le debugger ?
si non vérifies avec le debugger
CInt(variable_global.res(0, 0)) volume And CInt(variable_global.res(0, 1)) valeur
Si le if est executé donc le contenu de la parenthèse est false