Autor Beitrag
p4nsen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Do 08.01.04 15:47 
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 ^^
ausblenden 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 user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Do 08.01.04 16:00 
Warum nimmst Du kein SQL?

_________________
Ha! Es compiliert! Wir können ausliefern!
p4nsen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Do 08.01.04 16:04 
weil ich mit ADO arbeitn soll, habs mir net so ausgesucht *gg* :roll: :roll:
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Do 08.01.04 16:14 
Jo, aber auch ADO unterstützt SQL.

_________________
Ha! Es compiliert! Wir können ausliefern!
p4nsen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 351

WinXP,Linux
D7 Prof, XE7
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: 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

_________________
Ha! Es compiliert! Wir können ausliefern!
p4nsen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: 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: