Dezember 07, 2021, 14:08:09

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Erster Datensatz kann nicht angesprungen werden im Recordset

Begonnen von herb54, November 03, 2021, 19:26:59

⏪ vorheriges - nächstes ⏩

herb54

Hallo zusammen,
ich habe eine Tabelle "Kassenbuch". Über ein Recordset möchte ich den ersten Datensatz der Tabelle  mit MoveFirst anspringen. Es wird immer nur der letzte Datensatz angesprungen. Hier mal der Programmcode:

Private Sub Befehl78_Click() ' Kassenbericht erstellen
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Kassenbuch")

rst.MoveFirst
MsgBox (ID)

rst.Close
Set rst = Nothing

End Sub

Momentan hat die Tabelle nur 2 Datensätze: ID 2262 und ID 2263. Die Messagebox zeigt mir immer wieder 2263 an. Irgendwie komme ich da nicht weiter.

Grüße
Herbert

PhilS

Zitat von: herb54 am November 03, 2021, 19:26:59Über ein Recordset möchte ich den ersten Datensatz der Tabelle  mit MoveFirst anspringen.
In einer Tabelle gibt es keinen ersten oder letzten Datensatz. Es handelt sich um eine unsortierte Menge von Datensätzen! (Das stimmt in der Praxis nicht ganz, aber man sollte trotzdem immer so denken!).

Wenn dir die Reihenfolge von Datensätzen wichtig ist, dann musst du sie in deiner Abfrage mit einer ORDER BY Klausel explizit vorgeben.
Set rst = CurrentDb.OpenRecordset("SELECT * FROM Kassenbuch ORDER BY Id")
Möglicherweise hast du aber auch noch ein ganz anderes Problem:
Zitat von: herb54 am November 03, 2021, 19:26:59MsgBox (ID)
Diese Codezeile dürfe gar nicht funktionieren. - Es sei denn, es gibt irgendetwas anderes, was mit "ID" angesprochen werden kann. Ein Steuerelement im Formular z.B.
Richtig wäre:
MsgBox (rst!ID)
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!

herb54

Hallo Phil, super hat sofort geklappt! Vielen Dank!

Grüße
Herbert