Bonjour à tous!
j'ai crée une table en access ainsi :
Je voudrais que chaque enregistrement ait un IDCONTACT lors de l'encodage dans la base de données.
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
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
ceci afin qu'il se donne toujours l'IDCONTACT+1 lorsque je veux encoder un nouveau NOMCONTACT.
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);
et dans l'evenement OnExit du l'Edit_Numero ce code ici:
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.
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;
je ne trouve pas l'erreur;
merci pour votre aide à tous!
Partager