Hallo,
hab hier ein blödes Problem mit einer Suchfunktion die ich entworfen habe. Die Suche soll ein DbGrid, mit jedem Buchstaben aktualisieren, den ein User eintippt.
Auf dem Formular liegen einige Editfenster, die die Daten aus dem DbGrid anzeigen. Wenn ein User ein best. Panel anklickt, soll die Suchfunktion quasi "aktiviert" werden, die Editfelder sollen als Suchkriterien dienen.
Das Problem: Wenn ich die Suchfunktion aktiviere, ist noch der aktuelle Datensatz in den DbEdit-Feldern geladen, wodurch die Datasource annimmt, ich wollte eine Änderung am jenem Eintrag machen. Tippe ich also ein Suchkriterium ein, wird nur der aktuelle Datensatz geändert
Delphi-Quellcode:
procedure TmaxMain.DbEdTitelChange(Sender: TObject);
var sTitel, sStandort:
string;
begin
if PnSearch.BevelOuter = bvLowered
then begin
sTitel := DbEdTitel.Text;
sStandort := DbCbStandort.Text;
try
dbquery(QuSearch,SrcSearch,'
SELECT * FROM `ma_marchiv_'+maxlogin.mydacSourceLogin.DataSet.Fields[0].AsString+'
` WHERE Titel LIKE "%'+sTitel+'
%" AND Standort LIKE "%'+sStandort+'
%" ORDER BY Titel');
DbGrMain.DataSource := SrcSearch;
except
On E:
Exception Do begin
MessageDlg('
Fehler aufgetreten: '+E.
Message+'
', mtError, [mbOK], 0);
end
end;
end;
end;
Hoffentlich versteht jemand was ich meine ^^
Gruß Daniel