Verschachtelte For...Next

16/09/2009 - 14:58 von Michael Alexander | Report spam
Hallo!

Ich habe mich - offensichtlich auch gedanklich - in einer verschtelten
For-Next Schleife verlaufen und ersuche um eure Hilfe:

Gegeben sind zwei Recordsets mit Datum

Eines enthàlt die Reservierungsdatums eines Kunden, das zweite die
Stornodatums.

rs enthàlt z.B. 31 DS mit den Reservierungsdatums 19.1., 26.1., 2.2., 9.2.,
16.2.,... in Summe sagen wir 31 Datums.

rsResTage enthàlt z.B. 3 DS mit Stornodatums, 2.2., 9.2., 16.2.

Dazu kommt, dass in der gesamten Funktion das Datum, mit dem die Stornos
beginnen, das erste Datum anders abgehandelt wird, d.h. im
folgenden Set rsResTage sollten nur ZWEI Datum hinein, 9.2. und 16.2., gar
nicht mehr der 2.2., weil der bereits vorher richtig storniert wurde.
(Das Einzelstorno hat seinen bestimmten Grund!). Das Recordset rs hingegen
muß alle Reservierungen beinhalten, d.h. es hat 31 DS.

Nunmehr soll der Inhalt des einen Recordset mit dem anderen abgegelichen
werden und bei gleichem Datum ein Strono durchgeführt werden.

SS = "SELECT * FROM ResTage WHERE [Reservierungsdatum] > " &
vglDatum(frm.txtDatum) & " ORDER BY Reservierungsdatum"
Set rsResTage = CurrentDb.OpenRecordset(SS, dbReadOnly) 'RS mit
Stornodatums enthàlt nur die Datum 9.2., 16.2.

rsResTage.MoveLast
rsResTage.MoveFirst

intAnzahlResTage = rsResTage.RecordCount

For i = 0 To intAnzahlResTage - 1 'Stornodatums

For ii = 0 To intAnzahlSS - 1 'Reservierungsdatums
Debug.Print rs("DatumReservierung"); vbTab;
rsResTage("Reservierungsdatum")

If rsResTage("Reservierungsdatum") =
rs("DatumReservierung") Then
...mach mein Storno

End If
rs.MoveNext
Next ii
rsResTage.MoveNext
Next i

vglDatum(frm.txtDatum) formatiert das Datum "SQL-tauglich"

Der Durchlauf funktioniert jedoch nicht, d.h. es scheint kein Loop in den
Schleifen zu sein, denn ohne Fehler wird dennoch nichts storniert.

In einem Debug.print müßte ich doch zuerst 31 Zeilen mit allen
rs("DatumReservierung") und dem ersten Datum des Stornos bekommen und dann
nochmals 31 Zeilen mit dem 2. Datum, etc.

Ich bekomme aber kein Debug.Print

Hoffe, ich habe mich klar ausgedrückt.

Danke
Michael

A2k SP3, Win XP Pro SP3
 

Lesen sie die antworten

#1 Bernd Gilles
16/09/2009 - 15:09 | Warnen spam
Hallo Michael,

Michael Alexander schrieb:
For i = 0 To intAnzahlResTage - 1 'Stornodatums



auf Deinen Code gehe ich jetz mal nicht bewusst ein sondern frage ganz
grundsàtzlich:

Warum nimmst Du 'ne for-Schleife?

Ich verwende zum Durchlaufen von Recordsets grundsàtzlich
Do While Not rs.Eof
...
rs.MoveNext
Loop

Ansonsten: Bist Du sicher, dass Dein Recordset nach dem Öffnen überhaupt
Daten enthàlt?

Gruß, Bernd

Access goes Subversion - http://oasis.gilles-family.de

Ähnliche fragen