Files
elwig-misc/wgmaster/vba/form/Form_MLieferscheinBereinigung.frm

112 lines
2.9 KiB
Plaintext

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