Bonjour à tous!
j'ai crée une table en access ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
NR                 NumeroAuto indexé sans doublons  
         IDCONTACT     Numerique   indexé avec doublons
         NOMCONTACT  Texte
Je voudrais que chaque enregistrement ait un IDCONTACT lors de l'encodage dans la base de données.
Dans la partie programmation, je voudrais que le programme me donne toujours IDCONTACT+1 lors de l'encodage d'un NOMCONTACT et si je mets un IDCONTACT deja existant , il m'envoie un message d'erreur disant que ce numero existe deja dans la table .
Dans l'evenement OnShow de ma feuille , j'ai mis ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
procedure TContactForm.FormShow(Sender: TObject);
var nIDContact:variant;
begin
  DM.tbContact.Last;
  nIDContact:=DM.tbContactIDCONTACT.Value + 1;
  Edit_Numero.Text:=IntToStr(nIDContact);
ceci afin qu'il se donne toujours l'IDCONTACT+1 lorsque je veux encoder un nouveau NOMCONTACT.
et dans l'evenement OnExit du l'Edit_Numero ce code ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TContactForm.Edit_Numero(Sender: TObject);
var resultat, nIDContact:variant;
begin
  resultat:=DM.tbContact.Locate('IDCONTACT',StrToInt(Edit_Numero),[]);
  if resultat then
  begin
    MessageDlg('        Ce numéro existe déjà !!!        ',
    mtInformation,[mbOk],0);
    DM.tbContact.Last;
    nIDContact:=DM.tbContactIDCONTACT.Value + 1;
    Edit_Numero.Text:=IntToStr(nIDContact);
    Edit1.SetFocus;
    exit;
mais lorsque je suis sur cette feuille , il me donne bien l'IDCONTACT+1 ,et lorsque j'encode , il n'a pas encoder le numero dans la table, il n'a pris que le NOMCONTACT.
je ne trouve pas l'erreur;
merci pour votre aide à tous!