VBA Access: Synchronisation zwischen Recordset und Access Tabelle
Hallo,
Ich habe in Access ein VBA-Skript programmiert. Das Skript holt sich Daten von einer MySQL Server. Das funzt auch. Die Daten sollen bearbeitet und letztendlich in Word ausgedruckt werden. Bei der Bearbeitung werden Daten gefiltert und sortiert. Diese gefilterten und sortierten Daten sollen dann gedruckt werden. Jetzt ist mir aufgefallen, dass der aktuelle Zustand der Tabelle nicht synchron ist mit dem dazugehörigen Recordset. Konkret: Die Tabelle ist nach ID aufsteigend sortiert. Ich sortiere die Tabelle absteigend. Die grösste ID steht nun an erster Stelle.
Dann gibt der folgende Code trotzdem die kleinste ID aus:
Set rs_access = CurrentDb.OpenRecordset("Spieler", dbOpenDynaset)
rs_access.Move 0
MsgBox (rs_access.Fields("id").Value)
Was muss ich machen, damit die Tabelle und das Recordset immer synchron sind.
Muss den ganzen Kram von Excel nach Access konvertieren. Bei Excel greift man ja mit Cell direkt auf die Tabelle zu.
Ich habe in Access ein VBA-Skript programmiert. Das Skript holt sich Daten von einer MySQL Server. Das funzt auch. Die Daten sollen bearbeitet und letztendlich in Word ausgedruckt werden. Bei der Bearbeitung werden Daten gefiltert und sortiert. Diese gefilterten und sortierten Daten sollen dann gedruckt werden. Jetzt ist mir aufgefallen, dass der aktuelle Zustand der Tabelle nicht synchron ist mit dem dazugehörigen Recordset. Konkret: Die Tabelle ist nach ID aufsteigend sortiert. Ich sortiere die Tabelle absteigend. Die grösste ID steht nun an erster Stelle.
Dann gibt der folgende Code trotzdem die kleinste ID aus:
Set rs_access = CurrentDb.OpenRecordset("Spieler", dbOpenDynaset)
rs_access.Move 0
MsgBox (rs_access.Fields("id").Value)
Was muss ich machen, damit die Tabelle und das Recordset immer synchron sind.
Muss den ganzen Kram von Excel nach Access konvertieren. Bei Excel greift man ja mit Cell direkt auf die Tabelle zu.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252000
Url: https://administrator.de/contentid/252000
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Du könntest ein Recordset Objekt erzeugen und eine SQL Abfrage zuordnen.
Dim rst As DAO.Recordset
'db die aktuelle Datenbank zuweisen
Set db = CurrentDb
'Recordset Variablen Den SQL Befehl zuweisen. ORDER BY sorgt hier für die Sortierung.
Set rst = db.OpenRecordset("SELECT id, Vorname, Nachname FROM Spieler ORDER BY id", dbOpenDynaset)
Dim rst As DAO.Recordset
'db die aktuelle Datenbank zuweisen
Set db = CurrentDb
'Recordset Variablen Den SQL Befehl zuweisen. ORDER BY sorgt hier für die Sortierung.
Set rst = db.OpenRecordset("SELECT id, Vorname, Nachname FROM Spieler ORDER BY id", dbOpenDynaset)