Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Abfrage geht nicht richtig





Frage

Ich versuch es noch mal (denn so langsam verzweifel ich hier): ich habe eine Tabelle mit den Spalten Kennummer, BestellNr, und Standort. Auf Kennummer liegt ein primary-key. BestellNr is unabhängig von Kennummer und manchmal kann es vorkommen das mehrere Zeilen dieselbe BestellNr haben (sie stehen aber direkt untereinander). D.h. die ersten 10 Zeilen BestellNr 1, danach 20 Zeilen BestellNr 2 usw. Jetzt soll nach Eingabe einer BestellNr die Standorte angezeigt werden, und zwar je nachdem wieviel Zeilen pro BestellNr nötig sind. Und hier mein Problem (Me.schritt beinhaltet die Anzahl der anzuzeigenden Zeilen, zähler die letzte Zeile der Bestellung von BestellNr): Me.RecordSource = "select top " & Me.schritt & " * from KapOrder where " & "bestellnr not in (select top " & zähler - Me.schritt & " bestellnr from KapOrder)" Hier werden zwar alle Daten richtig angzeigt, aber je grösser die Datenbank ist und je weiter unten (zuletzt) die Daten stehen, desto länger dauert die Abfrage (Rechner und alles ist OK, es liegt an der Abfrage). Me.RecordSource = "select top " & Me.schritt & " * from KapOrder where " & "BestellNr not in (select top " & zähler - Me.schritt & " BestellNr > Kennummer from KapOrder)" Hier läuft die Abfrage schnell, aber es werden nur die ersten Zeilen der Datenbank angzeigt, je nach Grösse von Me.schritt halt. Ich hab schon alles möglich ausprobiert usw., aber nichts läuft wie es soll :( Weiss jemand weiter? MfG und Danke, M. Franke

Antwort 1 von Marie

Hallo M??

ich kapier nicht so ganz was Du hier machst, hab auch Deine möglicherweise vorhergehenden Fragen nicht gelesen.

Insbesondere kapier ich die Stelle "& zähler - Me.schritt &" nicht.

Wenn ich das recht verstehe willst Du doch zu einer ganz bestimmten Bestellnummer alle Standorte anzeigen? Dabei ist es doch völlig gleichgültig, ob die in deiner Tabelle untereinanderstehen und wie häufig die vorkommt. Warum machst Du nicht ganz einfach eine Abfrage auf die eingegebene Bestellnummer? Wieso zählst Du die Datensätze und arbeitest mit select top? Was kapier ich denn jetzt nicht??

Antwort 2 von ThomasOOP

zusatz zu maries post

nummer = 1 ( muss entsprechend dynamisch zugewiesen werden )


select * from tabelle where BestellNr = nummer

hoffe das meinst du
deine ausführungen sind leider etwas wirr :-)

Antwort 3 von hikE

hi,

zu dem programmtext faellt mir nichts ein aber zum Tempo:
wahrscheinlich wird die Abfrage wieder schneller, wenn das Feld Bestellnummer indiziert wird (natuerlich nicht mitm primary key, sondern mit "Dubletten zulassen").
- falls du das noch nicht gemacht hast, ausprobieren!

gruss hikE

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: