Datensatzzeiger mit movenext bewegen
Karl Donaubauer
Gesendet: 15.03.16 11:38
Betreff: RE: Datensatzzeiger mit movenext bewegen



Elite Veteran

Beiträge: 848
50010010010025
Ort: Wien
Hallo!

GenGomez - 15.03.16
...
Set rst_bk = db.OpenRecordset("Betriebskalender", dbOpenDynaset)
Set rst_daten = db.OpenRecordset("tbl_Eingabe", dbOpenDynaset)
rst_bk.MoveFirst
rst_daten.MoveFirst

Die beiden MoveFirst hier kannst du einsparen. Nach dem Öffnen stehen DAO-Recordsets immer auf dem ersten DS, wenn es ihn gibt.

kriterium = "Startzeit = " & CLng(dlz_start_date) 'datum aus PzM Start ; CLng -> Sonst Fehlermeldung; SQL Anweisung zusammenbauen
rst_bk.FindFirst kriterium 'Erster DS mit gleichem Datum finden

Hier würde ich prüfen, ob ein DS gefunden wurde:

If rst_bk.NoMatch = False Then

bk_ende_zeit = rst_bk("Endezeit") 'EndeZeit des Starttages ermitteln
...
rst_bk.MoveNext 'Hier läuft er noch zum zweiten Datensatz - nicht zum Datensatz NACH FindFirst
...

Wenn das FindFirst sicher klappt, dann ist die Frage, wonach die Datensätze in der Domäne sortiert sind. Bei einer Tabelle ist das i.d.R. nach dem Primärschlüssel. Du solltest jedenfalls hier nicht direkt die Tabelle für das Recordset verwenden sondern eine Abfrage, die zuverlässig wie gewünscht sortiert, also ca.

Dim strSQL As String
strSQL = "SELECT IdOderDergl, Startzeit, Endezeit" & _
" FROM Betriebskalender" & _
" ORDER BY Startzeit"

Set rst_bk = db.OpenRecordset(strSQL, dbOpenDynaset)

Wenn das MoveNext damit klappt, ist noch die Frage, ob du für deine aktuelle Verarbeitung alle DS der Tabelle brauchst, weil du z.B. mehrere solche Startzeitpunkte anspringst. Falls nicht, kannst du auch noch das FindFirst einsparen, also gleich:

strSQL = "SELECT IdOderDergl, Startzeit, Endezeit" & _
" FROM Betriebskalender" & _
" WHERE Startzeit >= " & CLng(dlz_start_date) & _
" ORDER BY Startzeit"

-----
Servus
Karl
*********
https://www.donkarl.com/devcon Access-Online-Konferenz 18.+19.4.
Access Forever: https://www.accessforever.org
Access News: https://www.youtube.com/playlist?list=PLVCeBbJIMDvdJ8ghMbEakJ6_EQyvy...
Access-Entwickler-Konferenz: https://www.donkarl.com/?aek
Top of the page Bottom of the page