Bonjour à tous,
après avoir fait des recherches sur le forum et lu attentivement quelques sujets dont:
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
Je ne trouve toujours pas de solution à mon problème que voici :

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 :
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;
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?