Schönen Guten Morgen,
Das ist der Code,der folgendes bewirkt:
- Aus 3 Abschlußdaten das aktuellste ermitteln
- Für jeden Bewerber wird geprüft, ob der Wert bereits existiert
- Wenn nicht, wird der Wert erzeugt und eingetragen (rs4 BOF and EOF, Insert)
- Wenn ja, wird der Wert nochmal erzeugt und upgedatet(Else, Update)
- Die Select-Anweisungen beziehen sich auf verknüpfte Tabellen einer mysqlDB
Dim conn As New ADODB.Connection
conn.Open „Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\datenbank\test.mdb;“
Dim rs_bewerber_id As New ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim rs3 As New ADODB.Recordset
Dim rs4 As New ADODB.Recordset
Dim t_bewerber_id_neu
Dim datum_erst
Dim datum_zweit
Dim datum_pro
Dim datum_erst_diff
Dim datum_zweit_diff
Dim datum_pro_diff
Dim aktuell As Date
Dim aktuell2
rs_bewerber_id.Open „SELECT t_bewerber_id FROM t_bewerber“, ActiveConnection:=conn, CursorType:=adOpenKeyset
Do Until rs_bewerber_id.EOF
t_bewerber_id_neu = rs_bewerber_id!t_bewerber_id
rs4.Open "SELECT * FROM tblbewerber_status_global1 WHERE t_bewerber_id = " & t_bewerber_id_neu, ActiveConnection:=conn, CursorType:=adOpenKeyset
If rs4.BOF And rs4.EOF Then 'Wert noch nicht vorhanden
rs4.Close
Set rs4 = Nothing
'erster Datumswert
rs.Open „SELECT t_erststudium.t_erst_ende FROM t_bewerber INNER JOIN t_erststudium ON t_bewerber.t_bewerber_id = t_erststudium.t_erststudium_id WHERE (((t_bewerber.t_bewerber_id)=“ & t_bewerber_id_neu & „))“, ActiveConnection:=conn, CursorType:=adOpenStatic
If IsNull(rs!t_erst_ende) Then
datum_erst = „1.1.1980“
Else
datum_erst = rs!t_erst_ende
datum_erst_diff = DateDiff(„d“, datum_erst, Now()) 'Datumsdifferenz zum jetzigen Datum in Tagen
End If
rs.Close
Set rs = Nothing
'zweiter Datumswert
rs2.Open „SELECT t_bewerber.t_bewerber_id, t_zweitstudium.t_zwo_ende FROM t_bewerber INNER JOIN
t_zweitstudium ON t_bewerber.t_bewerber_id = t_zweitstudium.t_zweitstudium_id WHERE (((t_bewerber.t_bewerber_id)=“ & t_bewerber_id_neu & „))“, ActiveConnection:=conn, CursorType:=adOpenStatic
If rs2.EOF And rs2.BOF Then
datum_zweit = „“
Else
datum_zweit = rs2!t_zwo_ende
datum_zweit_diff = DateDiff(„d“, datum_zweit, Now())
End If
rs2.Close
Set rs2 = Nothing
'dritter Datumswert
rs3.Open „SELECT t_bewerber.t_bewerber_id, t_pro.t_pende FROM t_bewerber INNER JOIN t_pro ON t_bewerber.t_bewerber_id = t_pro.t_pro_id WHERE (((t_bewerber.t_bewerber_id)=“ & t_bewerber_id_neu & „))“, ActiveConnection:=conn, CursorType:=adOpenStatic
If rs3.EOF And rs3.BOF Then
datum_pro = „“
Else
datum_pro = rs3!t_pende
datum_pro_diff = DateDiff(„d“, datum_pro, Now())
End If
rs3.Close
Set rs3 = Nothing
'niedrigste Datumsdifferenz bestimmen
If datum_zweit = „“ And datum_pro = „“ Then
aktuell = datum_erst
ElseIf datum_zweit „“ And datum_pro = „“ Then
If datum_erst_diff „“ Then
If datum_erst_diff „“ And datum_pro „“ Then
If datum_erst_diff „“ And datum_pro = „“ Then
If datum_erst_diff „“ Then
If datum_erst_diff „“ And datum_pro „“ Then
If datum_erst_diff