Und da ich hier drauf sogar eine passende antwort habe:
Delphi-Quellcode:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
if ADODataSet1.Active then
begin
ADODataSet1.Close;
end;
if column.title.caption = 'Nr.' then
begin
if not SortierID then
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY ID ASC';
SortierID := True;
end
else
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY ID DESC';
SortierID := False;
end;
end
else if Column.Title.Caption = 'Datum' then
begin
if not SortierDatum then
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Datum, Zweck, Preis ASC';
SortierDatum := True;
end
else
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Datum DESC, Zweck DESC, Preis DESC';
SortierDatum := False;
end;
end
else if Column.Title.Caption = 'Betrag' then
begin
if not SortierPreis then
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Preis ASC';
SortierPreis := True;
end
else
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Preis DESC';
SortierPreis := False;
end;
end
else if Column.Title.Caption = 'Zweck' then
begin
if not SortierZweck then
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Zweck, Datum, Preis';
SortierZweck := True;
end
else
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Zweck DESC, Datum DESC, Preis DESC';
SortierZweck := False;
end;
end
else if Column.Title.Caption = 'Kommentar' then
begin
if not SortierKommentar then
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Kommentar ASC';
SortierKommentar := True;
end
else
begin
ADODataSet1.CommandText := 'SELECT * from Finanzen ORDER BY Kommentar DESC';
SortierKommentar := False;
end;
end
else
begin
ADODataSet1.CommandText := 'Select * from Finanzen';
ADODataSet1.open;
exit;
end;
ADODataSet1.open;
end;
P.S.
SortierKommentar, Sortier... das sind globale Variablen die zu beginn des Programms als False definiert wurden
Finanzen, so heißt meine Tabelle.
zwar nen bissel umständlich und aufwendig programmiert, aber dafür Anfängertauglich ^^