deusfalsus
Erfahrenes Mitglied
Salvete!
per sql Abfrage öffne ich ein Recordset
Innerhalb dieser Schleife generiere ich eine neue Abfrage sql2
Dieses zweite Recordset kommt aber nicht über den ersten Datensatz hinaus.
"rs2.RecordCount" ergibt immer maximal 1.
wenn ich zur Überprüfung das Abfrageergebnis in eine Tabelle schreibe, erhalte ich die richtige Ergebnismenge.
Hier nochmal der Code für den Gesamteindruck:
per sql Abfrage öffne ich ein Recordset
Code:
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
rs.MoveFirst
While Not rs.EOF
Innerhalb dieser Schleife generiere ich eine neue Abfrage sql2
Code:
Set rs2 = db.OpenRecordset(sql2, dbOpenDynaset)
"rs2.RecordCount" ergibt immer maximal 1.
wenn ich zur Überprüfung das Abfrageergebnis in eine Tabelle schreibe, erhalte ich die richtige Ergebnismenge.
Hier nochmal der Code für den Gesamteindruck:
Code:
sql = "SELECT tbl_temp1.t607_KONSERV, tbl_temp1.T607_ENTN_DAT, tbl_temp1.T607_T002_KL_SER FROM tbl_temp1"
Set rs = db.OpenRecordset(sql, dbOpenDynaset)
rs.MoveFirst
While Not rs.EOF
Dvon = rs(1) - 1826
Dbis = rs(1) - 1
Dvon = Replace(Format(Dvon, "mm/dd/yyyy"), ".", "/", 1, 7)
Dbis = Replace(Format(Dbis, "mm/dd/yyyy"), ".", "/", 1, 7)
sql2 = "SELECT HIMEDX_HIXT607.T607_KONS_NR, HIMEDX_HIXT607.T607_ENTN_DAT " & _
"FROM HIMEDX_HIXT607 " & _
"WHERE (((HIMEDX_HIXT607.T607_T002_KL_SER)=" & rs(2) & ") " & _
"AND ((HIMEDX_HIXT607.T607_ENTN_DAT) Between #" & Dvon & "# And #" & Dbis & "#) " & _
"AND ((HIMEDX_HIXT607.T607_STORNO_KZ)='N') " & _
"AND ((HIMEDX_HIXT607.T607_T616_ZUOR_VG) Is Null));"
Set rs2 = db.OpenRecordset(sql2, dbOpenDynaset)
'wenn im Zeitraum von 5 Jahren zuvor keine Spende dieses Spenders existiert, ist diese eine Erstpende
If rs2.RecordCount = 0 Then
sql = "UPDATE tbl_temp1 SET erst='J' WHERE t607_KONSERV =" & rs(0) & ";"
DoCmd.RunSQL (sql)
End If
'Wenn eine existiert, wird geprüft, ob diese selbst eine Erstpende war, dann ist die aktuelle eine Zweitspende
'Wenn mehrere existieren ist die Frage hinfällig
If rs2.RecordCount = 1 Then
Dvon = rs2(1) - 1826
Dbis = rs2(1) - 1
Dvon = Replace(Format(Dvon, "mm/dd/yyyy"), ".", "/", 1, 7)
Dbis = Replace(Format(Dbis, "mm/dd/yyyy"), ".", "/", 1, 7)
sql = "SELECT DISTINCT HIMEDX_HIXT607.T607_KONS_NR, HIMEDX_HIXT607.T607_ENTN_DAT " & _
"FROM HIMEDX_HIXT607 " & _
"WHERE (((HIMEDX_HIXT607.T607_T002_KL_SER)=" & rs(2) & ") " & _
"AND ((HIMEDX_HIXT607.T607_ENTN_DAT) Between #" & Dvon & "# And #" & Dbis & "#) AND ((HIMEDX_HIXT607.T607_STORNO_KZ)='N')) " & _
"ORDER BY HIMEDX_HIXT607.T607_ENTN_DAT;"
Set rs3 = db.OpenRecordset(sql, dbOpenDynaset)
If rs3.RecordCount = 0 Then
sql = "UPDATE tbl_temp1 SET zweit='J' WHERE t607_KONSERV =" & rs(0) & ";"
DoCmd.RunSQL (sql)
End If
rs3.Close
End If
rs2.Close
rs.MoveNext
Wend
rs.Close