VBA/Access/Select bringt falsches Ergebnis

  • Access

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Alutec300.

    VBA/Access/Select bringt falsches Ergebnis

    Hallo zusammen,

    nachfolgendes Problem treibt mich seit zwei Tagen an den Rand des Wahnsinns.
    Eigentlich pippifax. Das ist die Tabelle:



    ID ID_Kunden ID_Standort Typ SerNr ID_Ticket datum_erl Bezuege
    2152 1 154 902101921 12349 05.03.2019 9213
    2153 1 154 902101923 12349 05.03.2019 9233
    2154 1 154 902101922 12349 05.03.2019 9223
    2155 1 158 B2 1537130962 12345 01.03.2019 11223
    2156 1 158 B2 1537130963 12345 01.03.2019 66667
    2157 1 158 B2 1537130964 12345 01.03.2019 33445
    2158 1 158 B2 1537130965 12345 01.03.2019 44556
    2161 1 158 B1 1721142930 12345 01.03.2019 57576
    2162 1 342 B2 1533130882 13648 20.07.2019 111111
    2163 1 342 B2 1533130879 13648 20.07.2019 222222
    2164 1 342 B2 1533130883 13648 20.07.2019 444444
    2165 1 342 B2 1533130880 13648 20.07.2019 555555
    2166 1 342 B2 1533130881 13648 20.07.2019 6666666
    2167 1 342 B2 1512127457 13648 20.07.2019 777777
    2168 1 342 B2 1512127458 13648 20.07.2019 8888888

    Das der Select-Befehl, der im Abfrage-Editor von Access nur einen Datensatz liefert, im VBA-Code aber deren 15:
    SQL = "SELECT tblBezAlle.* FROM tblBezAlle WHERE ((tblBezAlle.SerNr=1533130882) AND (tblBezAlle.ID_Kunden=1));"

    Set DB = CurrentDb()
    Set RS = DB.OpenRecordset(SQL)
    Select Case RS.RecordCount
    Ich verzweifle. Das ist ja nun wohl das einfachste der Welt, aber ich finde das Problem nicht. Wenn ich für die SerNr
    einen nicht in der Tabelle vorhandenen Wert eingebe, werden 0 Sätze zurückgegeben. Also korrekt. Wenn ich für ID_Kunden einen
    nicht vorhandenen Wert eingebe auch 0 Datensätze. Also korrekt. Nur die AND-Bedingung scheint nicht zu greifen.
    Kann jemand das Problem erkennen???
    Schande über mich, hätte es wissen müssen!
    Das Problem war nicht das Ergebnis der Abfrage, sondern der Rückgabewert von RS.recordcount.
    Der war einfach falsch! Ein rs.movelast vor rs.recordcount und alles hat gepasst!