Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

also ich habe folgendes Problem :

Ich habe eine Tabelle mit rund 2000 Datensätzen, die neben einer Namensspalte auch ein wenig Zahlenmaterial in 3 weitern Spalten enhält.

Soweit so gut ...

Ich möchte nun in weiteren 3 Spalten den Rang ermitteln und Speichern.

Ok das war mehr als unverständlich also ein Beispiel :

In Spalte 2 steht beispielsweise die Artikelanzahl. Und nun möchte ich den Anbietern eine eine Rangnummer geben, also er ist der mit den meisten Artikel, der ist der zweite usw.

Wie gesagt es sind insgesamt drei Spalten die einen Rang erahlet sollen.

Mein eigentliches Problem ist die Zeit, denn mein Lösung braucht knapp 60 Sekunden zu Berechnung, da die 2000 jeweils mit den restlichen 1999 vergleichen, da kann man sich den Aufwand ja in etwas ausmalen.

Kennt jemand eine schnelle Lösung.

Vielen Dank.

Geschrieben

Lies dir die Tabelle am besten schon sortiert in ein Recordset ein ("Select * from bla order by artikelanzahl"), und gehe dann alle Sätze durch, wobei du mitzählst. Falls doppelte Werte vorkommen können, die den gleichen Rang bekommen müssen, wird es komplizierter.

Wahrscheinlich hilft dir das Beispiel "frmHochsprung" in Klaus Oberdalhoffs knowhow.mdb, die du dir unter Freeaccess runterladen kannst.

hth

Reinhold

Geschrieben

Hallo,

im Endeffekt laeuft das auf die Sortierung Deiner Tabelle nach einem bestimmten Feld hinaus. Der von Dir gewaehlte Ansatz ist mit Abstand der ineffizienteste. Warum nimmst nicht einen Quicksort, um die Tabelle zu sortieren. Das sollte sich auch Problemlos in Basic umsetzen lassen.

Nic

Geschrieben

Hallo,

und danke erstmal ...

@ Rehinhold: Sowas hab ich mir heute auch zusammengebastelt, das Probelm ist nur, dass ich diese Rangnummern für 3 verschiedene Kriterien brauch, so dass ich das ganze 3 mal machen múss bzw. ich mach ne nette Verschachtelung. (was es wohl auch werden wird)

@Nic_Power : Ineffizientm ... ja aber es funktioniert und Quicksort kann ich nicht nehmen, a ich erstens 3 verschiedene Rangnummern brauch und zweitens Quicksort mir zwar die Liste(Tabelle) sortiert aber mir weder wirkliche Rangnummern also Zahlen liefert und es doppelten oder gleichen Rängen auch nicht weiter hilft. Das heißt nach der Sortierung fang ich nochmal an und geh die Tabelle von oben bis unten durch und schreib ne Nummer rein ... wirklich schönist das auch nicht.

... trotzdem vielen Dank.

Geschrieben

Ich nehm mal an, du arbeitest mit Access.

In dem Fall würde ich den Rang nicht in die Tabelle aufnehmen, da der Rang für alle Datensätze geändert werden muss, wenn ein Datensatz geändert wird.

Statt dessen, für jeden Rang eine Abfrage erstellen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...