Dim f_linr(0 To 1000) As Long
Dim f_count As Long

Private Sub BLöschen_Click()

Dim i As Integer
If MsgBox("Wollen Sie die ausgewählten Lieferungen wirklich löschen?", vbYesNo) = vbYes Then

    For i = 0 To LLieferungen.ListCount - 1
     If LLieferungen.Selected(i) Then
      If DFirst("Gewicht", "TLieferungen", "LINR=" + Format(LLieferungen.ItemData(i))) > 0 Then
        If MsgBox("Die Lieferung mit LINR=" + Format(LLieferungen.ItemData(i)) + " enthält ein Gewicht > 0. Wollen Sie sie wirklich löschen ?", vbYesNo) = vbYes Then
         'Löschen
         LieferscheinLöschen (LLieferungen.ItemData(i))
        End If
      Else
        'Löschen
         LieferscheinLöschen (LLieferungen.ItemData(i))
      End If
     End If
    Next i
    LLieferungen.Requery
End If

End Sub

Sub LieferscheinLöschen(LINR1 As Long)

Dim db1 As Database

Set db1 = CurrentDb
db1.Execute ("DELETE * FROM TLieferungAbschlag WHERE LINR=" + Format(LINR1) + ";")
db1.Execute ("DELETE * FROM TLieferungen WHERE LINR=" + Format(LINR1) + ";")

End Sub

Private Sub BWeiter_Click()

TLesejahr = TLesejahr - 1
BuildList

End Sub

Private Sub BZurueck_Click()

TLesejahr = TLesejahr + 1
BuildList

End Sub

Private Sub Form_Open(Cancel As Integer)

If Month(Date) > 7 Then
 TLesejahr = year(Date)
Else
 TLesejahr = year(Date) - 1
End If
BuildList

End Sub

Private Sub LLieferungen_DblClick(Cancel As Integer)

If LLieferungen.ListIndex >= 0 Then
 DoCmd.OpenForm "FLieferungen", , , "LINR=" + Format(LLieferungen.ItemData(LLieferungen.ListIndex + 1))
End If

End Sub

Private Sub TLesejahr_Exit(Cancel As Integer)

BuildList

End Sub


Sub BuildList()

Dim db1 As Database
Dim rs1 As Recordset
Dim where2 As String
Dim query1 As String
Dim where1 As String
Dim order1 As String
Dim order2 As String

query1 = "SELECT LINR, Lieferscheinnummer, TLieferungen.Datum, TLieferungen.Uhrzeit, TLieferungen.SNR, TSorten.Bezeichnung, TLieferungen.MGNR, TMitglieder.Nachname, TMitglieder.Vorname, TLieferungen.Gewicht, TLieferungen.Oechsle, TLieferungen.Storniert FROM TMitglieder RIGHT JOIN (TSorten RIGHT JOIN TLieferungen ON TSorten.SNR = TLieferungen.SNR) ON TMitglieder.MGNR = TLieferungen.MGNR"
order2 = " ORDER BY LINR"
f_count = 0
where2 = "AND Year(TLieferungen.Datum)=" + Format(TLesejahr)
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT LINR FROM TMitglieder RIGHT JOIN (TSorten RIGHT JOIN TLieferungen ON TSorten.SNR = TLieferungen.SNR) ON TMitglieder.MGNR = TLieferungen.MGNR WHERE (Lieferscheinnummer Is Null Or  Nachname is null or Bezeichnung is null or Oechsle is null or Gewicht is null) " + where2 + order2)
While Not rs1.EOF
 f_linr(f_count) = rs1!LINR
 f_count = f_count + 1
 rs1.MoveNext
Wend
rs1.Close

where1 = " WHERE LINR IN (-1,"
For i = 0 To f_count - 1
 where1 = where1 + Format(f_linr(i)) + ","
Next i
where1 = Left(where1, Len(where1) - 1) + ")"
order1 = " ORDER BY LINR"

LLieferungen.RowSource = query1 + where1 + order1
LLieferungen.Requery

End Sub