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.
Please also mark the comments that contributed to the solution of the article
Content-Key: 252000
Url: https://administrator.de/contentid/252000
Printed on: April 24, 2024 at 15:04 o'clock
2 Comments
Latest comment
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)