Tiens, un p'tit bout de code qui fonctionne chez moi...
avec dans le .h:
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 void __fastcall TForm4::Button7Click(TObject *Sender) { if ( VerifDoublon(Edit1->Text) == true ) { DataSource1->DataSet->Filtered = false; DataSource1->DataSet->Filter = AnsiString("Essai1 = '") + Edit1->Text + ("'"); DataSource1->DataSet->Filtered = true; if (!DataSource1->DataSet->IsEmpty()) { Database1->StartTransaction(); Table2->Edit(); for (int i = 0; i < Table2->Fields->Count; i ++) { Table2->Fields->Fields[i]->Value = Edit1->Text; } Table2->Post(); Database1->Commit(); } DataSource1->DataSet->Filtered = false; } else { Database1->StartTransaction(); Table2->Append(); Table2->FieldByName("Essai1")->Value = Edit1->Text; Table2->Post(); Database1->Commit(); } } //--------------------------------------------------------------------------- bool __fastcall TForm4::VerifDoublon(String AText) { bool Result; TLocateOptions Option; Option << loCaseInsensitive; Result = Table2->Locate("Essai1", AText, Option); return Result; }
Si la valeur saisi dans le TEdit existe dans la colonne "Essai1", il remplace donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bool __fastcall VerifDoublon(String AText);
toutes les valeurs des autres colonnes de cette ligne par cette valeur; sinon, il entre un nouvel enregistrement.
En espérant avoir bien compris ce qui était a faire (ce qui n'est pas sur)...
Il faut donc remplacer les noms d'objects et de champs par ceux de ton code.
@ +
Partager