Bonjour à tous,
après avoir fait des recherches sur le forum et lu attentivement quelques sujets dont:
Je ne trouve toujours pas de solution à mon problème que voici :try except qu'on m'explique
http://developpez.net/forums/showthr...iolation+cl%E9
remplacer les messages d'erreurs
http://developpez.net/forums/showthr...iolation+cl%E9
[Résolu] Contrôle de saisie de valeurs doublons de la clé primaire.
http://developpez.net/forums/showthr...iolation+cl%E9
J'ai une table "Chercheur" de type Paradox7, et je saisis les valeurs dans des DBEdit.
Ce que je souhaite faire, est, en cliquant sur un bouton "Enregistrer", le programme va tester la valeur du champ Code Chercheur avant d'enregistrer, si la valeur saisie existe déjà, alors je renvoie un message d'erreur (afin de ne pas agresser l'utilisateur avec le message de violation de clé), sinon, j'enregistre.
Voici le code que j'ai fait :
Le problème est qu'il m'affiche le message d'erreur 'Choisissez un autre SVP' sachant que j'ai saisi un nouveau code qui n'existe pas déjà, j'ai sûrement du me gourer quelque part, j'ai rajouté les //showmessage1, 2 et 3 pour voir ce que fait le programme en réalité afin de mieux repérer l'erreur, j'ai changé la dernière condition,... mais il me dit tjs que la clé existe. Il doit probablement comparer avec lui même!! que faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure TF02_Chercheur.Button4Click(Sender: TObject); Var x1:integer; begin x1:=Chercheur_Table.FieldValues[('Code_Ch')]; Chercheur_Table.First; While(Not Chercheur_Table.Eof) and (Chercheur_Table.FieldValues[('Code_Ch')] <> x1) do //showmessage1 Chercheur_Table.Next; //showmessage2 If (Chercheur_Table.Eof= false) then ShowMessage('Ce code existe déjà, Choisissez un autre SVP!') else Chercheur_Table.Post; //Enregistrer //showmessage3 end;
Partager