Tiens, un p'tit bout de code qui fonctionne chez moi...
Code:
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;
} |
avec dans le .h:
Code:
1 2
|
bool __fastcall VerifDoublon(String AText); |
Si la valeur saisi dans le TEdit existe dans la colonne "Essai1", il remplace donc
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.
@ + ;)