Merlin: ms Access limit

Hallo zusammen

ich habe eine Frage zum ms Access. Ist es möglich eine art Blätterfunktion in ein SQL statement zu schreiben. in der Art von limit und offset. Das müsste doch gehen. Habe schon einige seiten durch aber noch nichts brauchbares gefunden.

Ich danke euch.

Mit freundlichen Grüssen

Merlin

  1. Hallo

    ich habe eine Frage zum ms Access. Ist es möglich eine art Blätterfunktion in ein SQL statement zu schreiben.

    Nein, nicht in SQL

    in der Art von limit und offset.

    Nein, das kennt Jet-SQL, der Dialekt der Database-Engine hinter MS Access nicht.
    Das ist eines der Features von MySQL-SQL, die ich bei anderen DBMS vermisse.

    Das müsste doch gehen. Habe schon einige seiten durch aber noch nichts brauchbares gefunden.

    Wie auch? Jet-SQL kennt nur TOP. Damit kannst Du Dir die _ersten_ Einträge einer Abfrage anzeigen lassen.

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      in der Art von limit und offset.
      Das ist eines der Features von MySQL-SQL, die ich bei anderen DBMS vermisse.
      Wie auch? Jet-SQL kennt nur TOP. Damit kannst Du Dir die _ersten_ Einträge einer Abfrage anzeigen lassen.

      Mit Trick 17 kann man so etwas aber in einer _sortierten_ Datensatzmenge nachbauen. Man nimmt die TOP 20 einer sortierten Menge, sortiert diese genau entgegengesetzt, nimmt daraus die TOP 10 und sortiert diese wieder richtig. Dann erhält man die Sätze 11 - 20 der sortierten Menge. Entsprechend bei Top 10 aus Top 30 die Sätze 21 - 30 usw.

      Beispiel:

      SELECT *
      FROM (SELECT top 10 *
      FROM (SELECT top 30 *
      FROM artikel ORDER BY Artikelname) AS artikel1 ORDER BY Artikelname desc) AS artikel2 ORDER BY Artikelname;

      viele Grüße

      Axel

      1. Hello,

        Mit Trick 17 kann man so etwas aber in einer _sortierten_ Datensatzmenge nachbauen. Man nimmt die TOP 20 einer sortierten Menge, sortiert diese genau entgegengesetzt, nimmt daraus die TOP 10 und sortiert diese wieder richtig. Dann erhält man die Sätze 11 - 20 der sortierten Menge. Entsprechend bei Top 10 aus Top 30 die Sätze 21 - 30 usw.

        Guter Trick!
        Aber wie reagiert das DBMS, wenn die Datenmenge zu groß wird?

        Zum Vorwärtsblättern kann man auch mit einem Hilfsschlüssel arbeiten.
        Der besteht aus Sortierkriterium und ID (Autoincrement) des Datensatzes.
        Dann muss man sich nur merken, welche Werte am Ende der letzten Seite für Datenwert und ID galten.

        Mit einer einfachen [Pseudo...] "where 'aktueller_hilfsschlüssel' > 'letzter_Hilfsschlüssel" und natürlich TOP kann man dann auch in großen Datenmengen noch bequem navigieren, auch wenn da in der sortiertem Datenspalte 1000 Eintäge hintereinander mit "PHP" oder "Meier" stehen. Der Kombinationsschlüssel ist immer Unique _und_ er sorgt für eine gleichbleibende Sortierung der Ergebnismenge!

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau