Entwickler-Ecke
Datenbanken - Datenbank mehrmals durchsuchen
p4nsen - Do 08.01.04 15:47
Titel: Datenbank mehrmals durchsuchen
servus hab da folgendes kleines prob, und zwar möchte ich meine Datenbank nach mehreren kreterien durchsuchen, sprich in mehreren verschiedenen spalten einen vergleich vornehmen....
folgedes:
-ich wähle einen datensatz in einer combobox aus
-dann sucht er in der DB nach dem index, und findet 3 einträge mit dem selben index
-jetzt sucht er nach einem weiteren kreterium (buchstabe a,b oder c)
...dann sollte ein eindeutiger datensatz bestimmt sein
das prob is, wenn ich nach dem 2. kreterium suche durchsucht er wieder die ganze tabelle, er soll aber ab der stelle suchen wo das 1. kreterium bereits erfüllt ist... wie mach ich das *gg ??
das hier hab ich, geht aber net so wie es soll ^^
Delphi-Quelltext
1: 2: 3: 4:
| if Tb.Locate('Datensatz-Nr', datensNr[Tab01_Boden.Selection.Bottom], [loPartialKey]) then if Tb.Locate('Horizonte' , CB03_Geogen.Text, [loPartialKey]) then Tab01_Geogen.Cells[2,1] := Tb['Abgleich'] |
beim 1. locate sucht er nach der nummer
beim 2. locate sucht er nach dem buchstabe (a,b oder c)
thx im voraus, wenn jemand mein prob verstanden hat überhaupt :D :roll:
Moderiert von
Peter Lustig: Code- durch Delphi-Tags ersetzt
neojones - Do 08.01.04 16:00
Warum nimmst Du kein SQL?
p4nsen - Do 08.01.04 16:04
weil ich mit ADO arbeitn soll, habs mir net so ausgesucht *gg* :roll: :roll:
neojones - Do 08.01.04 16:14
Jo, aber auch ADO unterstützt SQL.
p4nsen - Do 08.01.04 16:27
aso :D
hmmm leider bin ich net so involviert bezüglich SQL, kannste mir da mal nen link oder codeauszug geben *ka
thx schonma :roll: :roll:
p4nsen - Fr 09.01.04 09:11
*schieb* :roll:
warte noch auf paar tips leude :wink:
übrigens, die Datenbank auf die ich zugreife is ne Access-DB
wäre nett wenn sich noch jemand zu wort melden würde :roll: :roll:
KidPaddle - Fr 09.01.04 10:40
Hallo,
da anscheinend ohne SQL arbeiten willst, bleibt dir noch die Filter - Property. Dort kannst Du deine Suchkriterien angeben in der Form:
Quelltext
1: 2:
| Table.Filter := '([Datensatz-Nr] = ' + datensNr[Tab01_Boden.Selection.Bottom + ') AND (Horizonte LIKE ''' + CB03_Geogen.Text '%'')'; Table.Filtered := True; |
Es bleiben nur noch die Datensätze übrig, auf die angegebenen Bedingungen passen. Schaue Dir bitte einfach dazu die Delphi - Hilfe an.
Noch etwas. Lass bei Datenbanken die Finger von Leerzeichen oder Bindestriche oder ähnlichen in Feld- oder Tabellenbezeichnungen. Diese verursachen meistens Anpassungen, wenn man von einer Access zu einer echten SQL - Datenbank wechseln möchte. Deswegen muss man die eckigen Klammern um den Feldnamen setzten, damit kein Fehler auftritt.
Gruß
KidPaddle
neojones - Fr 09.01.04 11:56
Hi,
sorry, war gestern schon weg :-)
Im Endeffekt ist die Filter-Anweisung auch ein SQL-String. Und zwar der Teil, der hinter "WHERE" beim SQL kommt.
Prinzipiell sieht SQL immer so aus:
SELECT * FROM Tabelle WHERE ...
und hinter dem Where kannst Du dann das Statement des Vorredners anschließen.
Viele Grüße,
Matthias
p4nsen - Fr 09.01.04 15:35
thx euch allen nochma :D
hab mich noch garnet bedankt für eure hilfe :oops: :oops:
also es funzt jetzt, habs letzteendlich mit TTabel.Filter(ed) hinbekommen *freu* :roll: dankÖööÖöö nochma :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!