Avant de "sauvegarder" mes données voici ma condition... [Résolu]

Signaler
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
-
Bonjour,

J'ai trois "edits" (edit1, edit2, and edit3). J'ai écrit ces codes afin d'empêcher que l'"edit2" ne peut recevoir une valeur supérieure à "edit1". Ça marche!
Mais alors je voulais bien l'appliquer sur un bouton de "sauvegarder". Cela veut dire qu'aucune sauvegarde ne peut se faire si "edit2" ou "edit3" portent une valeur supérieure à "edit1".

if strToFloat(edit1.Text) >= strToFloat(edit2.Text) then begin
end else
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
else
showmessage('Attention: un des champs contient une valeur superieure !');
end;


Ces codes marchent avec sans codes de sauvegarde. Mais quand j'ajoute ces codes de sauvegarde. Ça marchent!

7 réponses

Messages postés
15060
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
11 juin 2021
94
Hello,

Ces codes marchent avec sans codes de sauvegarde. Mais quand j'ajoute ces codes de sauvegarde. Ça marchent!

Euh...c'est pas faux...Plus tu pédales moins vite, moins t'avances d'avantage...
Messages postés
19
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
26 novembre 2013

Comme il a été dit :
if strToFloat(edit1.Text) >= strToFloat(edit2.Text) then begin
end else
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
else
showmessage('Attention: un des champs contient une valeur superieure !');
end;

ne peut fonctionner correctemment. Mais ceci : oui (Au moins si certaines conditions sont remplies)

if (strToFloat(edit1.Text) <= strToFloat(edit2.Text)) or
(strToFloat(edit1.Text) <= strToFloat(edit3.Text))
then showmessage('Attention: un des champs contient une valeur superieure !')
else Begin
qryTest.Append;
qryTest.fieldByName('matricule').AssTring:= edit1.Text;
qryTest.fieldByName('nom').AssTring:= edit2.Text;
qryTest.fieldByName('prenom').AssTring:= edit3.Text;
qryTest.Post;
end;

Maintenant je ne savais pas qu'un nom ou un prénom était représenté par un nombre.
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Mouais... Mais quand même, comparer un nom et un prénom... ça ne va pas marcher... A moins que le gars ne s'appelle "4588,66 6669787" mais perso, je n'en connais pas beaucoup... Ce code est absurde.
Messages postés
83
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
9 novembre 2013

Olala, je m'excuse d'abord pour la reptition du mot "sauvegarde". Mais c'est juste pour pouvoir m'expliquer!!!
Je voulais dire exactement ceci: sans l'ajout de la ligne de codes de "sauvegarde" ... tout marche! Et lorsque j'ajoute la dite ligne de codes de "sauvegarde". La condition de la non "sauvegarde" n'obei pas au cas où une valeur introduite dans "edit2 ou edit3" n'est pas egale à "edit1".
Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
bonsoir,

tu associes des données type chaine et avoir un résultat en comparant des nombres..

?
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Bonjour,

Leader2000 ou Divin1975 ? Faudrait te choisir un pseudo et le garder...
Il manque du code... Ce que tu as posté ne peut pas fonctionner, il y a un else en trop ou il manque le if qui est devant.
@Cantador : Je n'ai pas compris ta réponse... Une contamination ? :-)
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
13
Allons Simon, il compare compare des .text
'3.12' est supérieur à 12.28' !!!
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
euh... M. Dubois, si Edit2 contient un "nom", je ne vois pas trop ce que ça va donner... A part une exception EConvertError...
Je me répète, mais ce code ne marche pas tel quel car incomplet. Je veux bien aider (comme la plupart d'entre nous), mais on ne peut pas deviner ce que veut faire l'auteur...
Messages postés
675
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
19 février 2019
13
Je suis bien d'accord avec toi Simon, ce code est très bizarre !
Pour la première réponse de Cantador je disais juste qu'effectivement on peut comparer des pseudo nombres (sous forme de texte) mais que cela n'est pas significatif du même nombre converti en integer
Quant au résultat d'une telle comparaison là c'est le pot au noir !