Office: (Office 2013) SELECT mit ORDER BY sortiert nicht richtig

Helfe beim Thema SELECT mit ORDER BY sortiert nicht richtig in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Moin, ich habe folgendes Problem: Innerhalb einer Funktion führe ich ein SELECT aus. Die Variable "kalCode" wird über den Funktionsaufruf richtig... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von gerdon, 3. November 2020.

  1. SELECT mit ORDER BY sortiert nicht richtig


    Moin,
    ich habe folgendes Problem:
    Innerhalb einer Funktion führe ich ein SELECT aus. Die Variable "kalCode" wird über den Funktionsaufruf richtig befüllt.
    Code:
    Die Datentabelle habe ich nach einigen Versuchen bereits nach "Code" sortiert gespeichert. Es wird auch die richtige Anzahlvon Datensätzen getroffen, diese sind aber augenscheinlich nicht nach Code sortiert.
    Hier der ganze Code:
    Code:
    Hintergrund ist, dass bei einem gelöschten Datensatz die Codewerte in den Reihen danach jeweils um 1 runtergezählt werden müssen.
    Die Codewerte sind aber nicht lückenlos durchlaufend und es gibt auch Dubletten.
    Die Msgbox zeigt, dass die Datensätze nicht nach Codewert sortiert abgearbeitet werden.
    Im Anhang das Ergebnis der Msgbox.
    Wo liegt hier der Fehler?

    :)
     
  2. Den Inhalt einer Tabelle sollte man stets als unsortiert betrachten, was auch in Praxis absolut ausreichend ist, weil man direkt in eine Tabelle nicht hineinsieht, jedenfalls hoffentlich ein User, der so eine Sortierung für ein Verständnis benötigen würde.

    Dein Code ist etwas wild und für mich als einfach denkenden Geist unverständlich, aber Deine Wahrnehmung solltest Du dem gegenüberstellen, was Du eigentlich fragst:
    Angenommen, kalCode = 200
    Code:
    Siehe Dir das Ergebnis der Abfrage an sich an, besonders hinsichtlich Sortierung.
     
  3. Nun, das Ergebnis der Abfrage sieht man ja in der Msgbox (angehängtes Bild). Die Sortierung nach Code funktioniert nicht.
     
  4. SELECT mit ORDER BY sortiert nicht richtig

    Die MsgBox zeigt das, was Du mit eigenem Code in eigener Verarbeitung zusammenklaubst.
    Woher nimmt man das Selbstvertrauen, dass Fehler nur durch andere gemacht werden?
     
  5. Möglicherweise beeinflusst der Code
    Code:
    innerhalb der Schleife die Sortierreihenfolge, sodass das Recordset nicht mehr im selben Zustand bleibt wie bei der Initialisierung

    Führe doch die vorgeschlagene Abfrage einfach mal autark aus.
     
  6. Eine Abfrage in Access zeigt, dass die Datentabelle wohl nicht nach Code sortiert ist, aber in der Abfrage so sortiert werden kann. Dann verstehe ich nicht, warum die Datensätze nicht in dieser Reihenfolge abgearbeitet werden.
    Ich konnte das Problem lösen, indem ich ein "group" hinzugefügt habe:
    Code:
    Aber ganz verstehen kann ich das nicht. Auch eine mehrfache Aktualisierung desselben Code-Wertes dürfte nicht zu einem Fehler führen, wenn die Reihenfolge eingehalten wird.
     
  7. Moin,
    nur zur Klarstellung: in der Datenbank wird nie sortiert gespeichert.

    Die Zuweisung auf test geschieht bereits vor dem Update. Ist das so gewollt?

    ps:
    zu welcher Art von Fehler?
     
    drambeldier, 9. November 2020
    #7
  8. SELECT mit ORDER BY sortiert nicht richtig

    Nicht kann, sondern wird bei der gezeigten ORDER BY-Klausel.
    Ein Gruppieren kann sich temporär auswirken, aber dann garantiert nicht im Ergebnis der Abfragesortierung (in der Datensatzanzahl bei Vorhandensein von Duplikaten aber schon). Dazu müsste man sich auch den Ablauf einer Abfrageabarbeitung vergegenwärtigen => Grundlagen - SQL ist leicht (11) - Reihenfolge der Abfrageabarbeitung

    Mit Erzeugung des Recordsetobjektes ist in diesem die vorhandene Reihenfolge fixiert. Erst dadurch kann man ja auf einen nächsten, letzten oder vorherigen Datensatz wechseln.

    Tipp: Man sollte das und genau das testen, was man behauptet:
    Code:
    Eigene Hinzugestaltungen kann man später vornehmen und über das Verhalten daraus nachdenken.
     
Thema:

SELECT mit ORDER BY sortiert nicht richtig

Die Seite wird geladen...
  1. SELECT mit ORDER BY sortiert nicht richtig - Similar Threads - SELECT ORDER sortiert

  2. Access - SQL: Inhalt auf 255 Zeichen beschränkt

    in Microsoft Access Hilfe
    Access - SQL: Inhalt auf 255 Zeichen beschränkt: Hallo zusammen, in Access habe ich ein Modul mit folgender Funktion: Public Function SQLListe(Nummer As Long) As String Dim strSQL As String Dim rs As DAO.Recordset strSQL = "SELECT Dokument...
  3. VBA ohne Activate und select

    in Microsoft Excel Hilfe
    VBA ohne Activate und select: Hallo, ich habe ein Makro mit dem ich auf verschiedene Arbeitsmappen zugreife, Autofilter setzte und Bereiche kopiere, um sie dann in die Hauptmappe einzufügen. Da ich dies mittels Makro...
  4. SELECT DISTINCTROW Warenbezeichnung from X funktioniert nicht

    in Microsoft Access Hilfe
    SELECT DISTINCTROW Warenbezeichnung from X funktioniert nicht: Hallo, ich hänge fest :-( Ich habe ein Formular in dem ich per SELECT DISTINCTROW Warenbezeichnung from X Werte auswähle. X ist eine Abfrage, die je nach Artikelnummer mir die unterschiedlichen...
  5. Access SQL: SELECT-Klausel

    in Microsoft Access Tutorials
    Access SQL: SELECT-Klausel: Access SQL: SELECT-Klausel Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  6. SELECT-Anweisung

    in Microsoft Access Tutorials
    SELECT-Anweisung: SELECT-Anweisung Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  7. SELECT...INTO-Anweisung

    in Microsoft Access Tutorials
    SELECT...INTO-Anweisung: SELECT...INTO-Anweisung Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  8. SELECT TOP letzten Datensätze anzeigen lassen

    in Microsoft Access Hilfe
    SELECT TOP letzten Datensätze anzeigen lassen: Ich habe eine Access-Tabelle mit folgenden Daten: ID / Datum / ProduktID / Messwert / Messpunkt 1 / 01.01.2014 / 111 / 4,3 / M1 2 / 01.01.2014 / 111 / 1,2 / M2 3 / 01.01.2014 / 111 / 3,5 /...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden