Dim temptablename1 As String Private Sub Form_Open(Cancel As Integer) Dim db1 As Database LMitglieder.RowSource = "" LMitglieder.Requery temptablename1 = "xTempMitgliederInkonsistent" Set db1 = CurrentDb If TableExists(temptablename1) Then db1.Execute ("DROP TABLE " + temptablename1) End If db1.Execute ("CREATE TABLE " + temptablename1 + " (MGNR LONG, ProblemKurz TEXT, Problem MEMO);") FlaechenbindungenBerechnen (year(Now)) CheckConsistency LMitglieder.RowSource = "SELECT TMitglieder.MGNR AS MGNR, TMitglieder.Nachname, TMitglieder.Vorname, TMitglieder.Ort, TMitglieder.Geschäftsanteile1 AS GA1, TMitglieder.Geschäftsanteile2 AS GA2, TMitglieder.Eintrittsdatum AS Eintritt, TMitglieder.Austrittsdatum AS Austritt, TMitglieder.[Aktives Mitglied] AS Aktiv, xTempFlaechenbindungen.Gesamtflaeche AS Flaeche, xTempMitgliederInkonsistent.ProblemKurz AS Problem FROM (TMitglieder INNER JOIN xTempMitgliederInkonsistent ON TMitglieder.MGNR = xTempMitgliederInkonsistent.MGNR) LEFT JOIN xTempFlaechenbindungen ON TMitglieder.MGNR = xTempFlaechenbindungen.MGNR ORDER BY TMitglieder.MGNR" LMitglieder.Requery End Sub Function TableExists(table1) As Boolean Dim db1 As Database Set db1 = CurrentDb Dim x As TableDef For Each x In db1.TableDefs If x.Name = table1 Then TableExists = True Exit Function End If Next x TableExists = False End Function Sub CheckConsistency() Dim db1 As Database Dim rs1 As Recordset Dim rs2 As Recordset Dim aktlesejahr As Long Set db1 = CurrentDb Set rs2 = db1.OpenRecordset(temptablename1) Set rs1 = db1.OpenRecordset("SELECT MGNR FROM TMitglieder WHERE Austrittsdatum<>Null and [Aktives Mitglied]=true") While Not rs1.EOF rs2.AddNew rs2("MGNR") = rs1("MGNR") rs2("ProblemKurz") = "AUSTRITTSDATUM ABER AKTIV" rs2("Problem") = "Mitglied hat Austrittsdatum eingetragen und ist trotzdem als aktiv eingetragen" rs2.Update rs1.MoveNext Wend rs1.Close Set rs1 = db1.OpenRecordset("SELECT TMitglieder.MGNR FROM TMitglieder INNER JOIN xTempFlaechenbindungen ON TMitglieder.MGNR = xTempFlaechenbindungen.MGNR WHERE [Aktives Mitglied]=false and Gesamtflaeche>0") While Not rs1.EOF rs2.AddNew rs2("MGNR") = rs1("MGNR") rs2("ProblemKurz") = "FLÄCHENBINDG TROTZ INAKTIV" rs2("Problem") = "Mitglied ist als nicht aktiv eingetragen, es sind aber noch gültige Flächenbindungen vorhanden" rs2.Update rs1.MoveNext Wend rs1.Close Set rs1 = db1.OpenRecordset("SELECT MGNR FROM TMitglieder WHERE (Geschäftsanteile1>0 or Geschäftsanteile2>0) and [Aktives Mitglied]=false") While Not rs1.EOF rs2.AddNew rs2("MGNR") = rs1("MGNR") rs2("ProblemKurz") = "GA TROTZ INAKTIV" rs2("Problem") = "Mitglied ist als nicht aktiv eingetragen, hat aber Geschäftsanteile eingetragen" rs2.Update rs1.MoveNext Wend rs1.Close If Month(Now) < 11 Then aktlesejahr = year(Now) - 1 Else aktlesejahr = year(Now) End If Set rs1 = db1.OpenRecordset("SELECT MGNR FROM TMitglieder WHERE [Aktives Mitglied]=True AND MGNR NOT IN (SELECT DISTINCT MGNR FROM TLieferungen WHERE Year([Datum])>=" + Format(aktlesejahr - 2) + ")") While Not rs1.EOF rs2.AddNew rs2("MGNR") = rs1("MGNR") rs2("ProblemKurz") = "3 JAHRE KEINE LIEFERUNG" rs2("Problem") = "Mitglied ist als aktiv eingetragen, hat aber bereits 3 Jahre hintereinander nichts geliefert" rs2.Update rs1.MoveNext Wend rs1.Close Set rs1 = db1.OpenRecordset("SELECT MGNR FROM TMitglieder WHERE Austrittsdatum=NULL and [Aktives Mitglied]=false") While Not rs1.EOF rs2.AddNew rs2("MGNR") = rs1("MGNR") rs2("ProblemKurz") = "KEIN AUSTRITTSDATUM" rs2("Problem") = "Mitglied hat kein Austrittsdatum eingetragen und ist nicht als aktiv eingetragen" rs2.Update rs1.MoveNext Wend rs1.Close rs2.Close End Sub Private Sub LMitglieder_DblClick(Cancel As Integer) DoCmd.OpenForm "FMitglieder", , , "MGNR=" + Format(LMitglieder) Forms("FMitglieder")!OAlleMitglieder = True Forms("FMitglieder").RequeryListe Forms("FMitglieder")!LMitglieder = LMitglieder End Sub