Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBGrid nach Wert durchsuchen (https://www.delphipraxis.net/154547-dbgrid-nach-wert-durchsuchen.html)

bofh 15. Sep 2010 09:17

Datenbank: Oracle • Version: 9,01i • Zugriff über: ADO

DBGrid nach Wert durchsuchen
 
Hi,
folgendes Problem versuche ich gerade zu lösen.
Ich habe ein DBGRID das über ADO gefüllt wird.(Funktioniert)
Nun möchte ich in dem DBgrid nach einem bestimmten wert suchen den ich in Einem Editfeld reinschreiben kann.

Beispiel : in dem DBGrid sind folgende Werte

Name Nummer Haus
Huber 34 ja
Mueller 38 nein
kunz 88 ja

im editfeld wird 88 eingetragen und Enter gedrückt.(über Edit2KeyPress)
nun soll halt ein Pannel Grün werden wenn der Wert gefunden wurde oder Rot wenn nicht.

Aber wie prüf ich das DBGrid nun auf diesen Wert?
Danke schonmal für die Hilfe.

DeddyH 15. Sep 2010 09:19

AW: DBGrid nach Wert durchsuchen
 
Man prüft nicht das DBGrid, sondern die dahinterliegende Datenmenge.

mkinzler 15. Sep 2010 09:23

AW: DBGrid nach Wert durchsuchen
 
Z.B. mit
Delphi-Quellcode:
DataSet.Locate()

skh 15. Sep 2010 10:19

AW: DBGrid nach Wert durchsuchen
 
Ein Ansatz wäre das ganze innerhalb einer

DBGrid1DrawColumnCell - Procedur abzuhandeln....
Dort wird beim Zeichnen dann abgefragt ob es sich um den entsprechenden Datensatz handelt
und entspechende Farbe gesetzt....

mkinzler 15. Sep 2010 10:24

AW: DBGrid nach Wert durchsuchen
 
Dann einfach

Delphi-Quellcode:
If Column.Grid.DataSource.DataSet.Locate( Column.Fieldname, <Wert>, [<Options>]) then <gefunden>;

shmia 15. Sep 2010 12:54

AW: DBGrid nach Wert durchsuchen
 
Zitat:

Zitat von skh (Beitrag 1049738)
Ein Ansatz wäre das ganze innerhalb einer
DBGrid1DrawColumnCell - Procedur abzuhandeln....

Das wäre dann aber keine Suche. Es gibt drei grundsätzliche Dinge, die man mit einem Dataset tun kann.

Suchen
Suchen bedeutet man beginnt von vorne und arbeitet sich durch die Datenmenge.
Entspricht ein Datensatz den Suchkriterien, dann bleibt man auf dem aktuellen Datensatz stehen.
Locate kann nur von vorne suchen und bleibt auf dem 1. gefundenen Datensatz stehen.
Leider fehlt bei Locate die Möglichkeit weiterzusuchen.

Filtern
Filtern bedeutet, man zeigt nur die Datensätze an, die dem Filterkriterium entsprechen.
Normalerweise wird über die WHERE-Bedingung in der SQL-Abfrage gefiltert.
Man kann aber auch das Property Filter oder das Event OnFilterRecord verwenden.

Highlighting
Datensätze, die ein bestimmtes Kriterium erfüllen werden in einer besonderen Farbe und/oder Schriftart/style dargestellt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz