Files
elwig-misc/wgmaster/vba/form/Form_FÜbernahme.frm

1486 lines
31 KiB
Plaintext

Public TheEvent As Integer
Public TimerAus As Boolean
Public SerialInterface As Boolean
Public FreigabeErteilt As Boolean
Private Sub BAbwertenAlt_Click()
Dim wert1 As Variant
Dim Wert As Double
Dim aktLieferscheinnummer
Dim db1 As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
aktLieferscheinnummer = TLieferscheinnummer
wert1 = InputBox("Welchen Gewichtsanteil dieser Lieferung wollen Sie abwerten ?")
If Not IsNull(wert1) And wert1 > 0 Then
Wert = wert1
If Wert >= TGewicht Then
MsgBox ("Gesamte Lieferung abwerten")
OAbgewertet = True
TOechsleOriginal = TOechsle
TQSNROriginal = TQSNR
'CP 20070213: Oechslsereduktion bei Abwertung nur bedingt
'If Not IsNull(TSANR) And TSANR <> "" Then
' If DFirst("AbwertungInAuszahlungIgnorieren", "TSortenattribute", "SANR='" + TSANR + "'") = True Then
' 'Keine Oechslereduktion
' Else
' TOechsle = GetParameter("ABWERTUNGOECHSLE")
' End If
'Else
' If DFirst("AbwertungInAuszahlungIgnorieren", "TSorten", "SNR='" + TSNR + "'") = True Then
' 'Keine Oechslereduktion
' Else
' TOechsle = GetParameter("ABWERTUNGOECHSLE")
' End If
'End If
TLieferscheinnummer = TLieferscheinnummer + "A"
TQSNR = 0
Else
MsgBox ("Teil der Lieferung abwerten - Neuen Lieferschein erstellen")
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("TLieferungen")
Set rs2 = db1.OpenRecordset("SELECT * FROM TLieferungen WHERE LINR=" + Format(TLINR))
rs1.AddNew
rs1!MGNR = rs2!MGNR
rs1!GNR = rs2!GNR
rs1!RNR = rs2!RNR
rs1!ZNR = rs2!ZNR
rs1!SNR = rs2!SNR
If Not IsNull(rs2!SANR) Then
rs1!SANR = rs2!SANR
End If
rs1!Lieferscheinnummer = rs2!Lieferscheinnummer + "A"
rs1!Datum = rs2!Datum
rs1!Uhrzeit = rs2!Uhrzeit
rs1!Anmerkung = rs2!Anmerkung
rs1!Gerebelt = rs2!Gerebelt
rs1!LINR = DMax("LINR", "TLieferungen") + 1
rs1!OechsleOriginal = rs2!Oechsle
'CP 20070213: Oechslsereduktion bei Abwertung nur bedingt
'If Not IsNull(TSANR) And TSANR <> "" Then
' If DFirst("AbwertungInAuszahlungIgnorieren", "TSortenattribute", "SANR='" + TSANR + "'") = True Then
' 'Keine Oechslereduktion
' rs1!Oechsle = rs2!Oechsle
' Else
' rs1!Oechsle = GetParameter("ABWERTUNGOECHSLE")
' End If
'Else
' If DFirst("AbwertungInAuszahlungIgnorieren", "TSorten", "SNR='" + TSNR + "'") = True Then
' 'Keine Oechslereduktion
' rs1!Oechsle = rs2!Oechsle
' Else
' rs1!Oechsle = GetParameter("ABWERTUNGOECHSLE")
' End If
'End If
rs1!Abgewertet = True
rs1!Gewicht = Wert
rs1!QSNROriginal = rs2!QSNR
rs1!QSNR = 0
rs1!Handwiegung = False
rs1!Storniert = False
rs1.Update
rs1.Close
rs2.Close
TGewicht = TGewicht - Wert
End If
End If
Requery
TLieferscheinnummer.SetFocus
DoCmd.FindRecord aktLieferscheinnummer, acEntire, , acSearchAll, , acCurrent
End Sub
Private Sub BChargen_Click()
DoCmd.OpenForm "MChargenAuswahl"
End Sub
Private Sub BDrucken_Click()
Dim LieferscheinName As String
Dim abschlaege1 As Integer
abschlaege1 = GetAbschlaege
If GetParameter("LIEFERSCHEINART") = Null Then
SetParameter "LIEFERSCHEINART", "2"
End If
LieferscheinName = "BLieferschein" + GetParameter("LIEFERSCHEINART")
If IsNull(DMax("MGNR", "TMitglieder", "[Aktives Mitglied]=True AND MGNR=Forms!FÜbernahme!TMGNR")) Then
MsgBox "Bitte zuerst gültiges Mitglied eingeben !", vbCritical
TMGNR.SetFocus
Exit Sub
End If
If IsNull(DMax("ZNR", "TZweigstellen", "ZNR=Forms!FÜbernahme!TZweigstelle")) Then
MsgBox "Bitte zuerst gültige Zweigstelle eingeben !", vbCritical
TZweigstelle.SetFocus
Exit Sub
End If
If IsNull(DMax("SNR", "TSorten", "SNR=Forms!FÜbernahme!TSNR")) Then
MsgBox "Bitte zuerst gültige Sorte eingeben !", vbCritical
TSNR.SetFocus
Exit Sub
End If
If IsNull(TGewicht) Or TGewicht = "" Then
MsgBox "Bitte zuerst wiegen !", vbCritical
If BWiegen.Enabled Then
BWiegen.SetFocus
End If
Exit Sub
End If
If IsNull(TOechsle) Or TOechsle = "" Then
MsgBox "Bitte zuerst Oechsle eingeben !", vbCritical
TOechsle.SetFocus
Exit Sub
End If
If IsNull(GetParameter("ABSCHLAG_ERFORDERLICH")) Then
SetParameter "ABSCHLAG_ERFORDERLICH", "0"
End If
If GetParameter("ABSCHLAG_ERFORDERLICH") = "1" And abschlaege1 = 0 Then
MsgBox "Es muss mindestens ein Abschlag vergeben werden!", vbCritical
Exit Sub
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
If Not IsNull(TCNR) Then
If ChargeStandNachFuellung(LINR) > 0 And GetParameter("CHARGENWARNUNG_BEHAELTERVOLL") = "Ja" Then
If MsgBox("Diese Lieferung würde den Behälter um " + Format(ChargeStandNachFuellung(LINR)) + " überfüllen. Wollen Sie trotzdem diese Lieferung dieser Charge zuordnen und fortsetzen?", vbYesNo) = vbNo Then
TCNR = Null
Exit Sub
End If
Else
If ChargeStandNachFuellung(LINR) > -GetParameter("CHARGENWARNUNG_BEHAELTERFASTVOLL") Then
MsgBox ("Warnung! Im Behälter der gewählten Charge sind nach dieser Befüllung nur noch " + Format(-ChargeStandNachFuellung(LINR)) + " frei")
End If
End If
End If
TMGNR.SetFocus
BDrucken.Enabled = False
If Not IsNull(TCNR) Then
OAufChargeverbucht = ChargeBefuellen(TCNR, TLINR)
End If
If IsNull(TLieferscheinnummer) Or TLieferscheinnummer = "" Then
'Noch keine Lieferscheinnummer
' Switch RTS for 3 seconds -> Waage Freigabe
TheEvent = 0
If GetParameter("STEUERUNGTYP") = "SERIELL" Then
If XCommSteuerung.PortOpen = 0 Then
On Error GoTo WeiterNachKippen
XCommSteuerung.PortOpen = 1
End If
End If
TimerAus = True
Kippen (True)
While TheEvent < 3
DoEvents
Wend
Kippen (False)
TimerAus = False
If GetParameter("STEUERUNGTYP") = "SERIELL" Then
If XCommSteuerung.PortOpen = 1 Then
On Error GoTo WeiterNachKippen
XCommSteuerung.PortOpen = 0
End If
End If
WeiterNachKippen:
On Error Resume Next
' Lieferscheinnummer setzen
SetLieferscheinnummer
'Ausdrucken
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.OpenReport LieferscheinName, , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
If GetParameter("LIEFERSCHEINART") <> "1" Then
'2x drucken
DoCmd.OpenReport LieferscheinName, , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
End If
'If GetParameter("LIEFERSCHEINART") = "1" Then
' DoCmd.OpenReport "BLieferschein1", , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
'Else
' DoCmd.OpenReport "BLieferschein2", , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
' DoCmd.OpenReport "BLieferschein2", , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
'End If
' new record
NewLieferschein
Else
' Lieferschein bereits 1x gedruckt (kein Kippen, kein neuer Datensatz, keine Lieferscheinnummer
' nur ausdrucken
DoCmd.OpenReport LieferscheinName, , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
'If GetParameter("LIEFERSCHEINART") = "1" Then
' DoCmd.OpenReport "BLieferschein1", , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
'Else
' DoCmd.OpenReport "BLieferschein2", , , "[LINR]=" + Format(Forms!FÜbernahme!TLINR)
'End If
End If
BDrucken.Enabled = True
End Sub
Private Sub Befehl114_Click()
Dim Wert
Wert = InputBox("Geben Sie bitte das Gewicht an:", "Manuelle Gewichtseingabe")
If Wert <> "" And Not IsNull(Wert) Then
TGewicht.SetFocus
TGewicht = Wert
OHandwiegung = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
End If
End Sub
Private Sub Befehl170_Click()
Dim str1 As String
Dim rnr1 As Long
str1 = InputBox("Bitte geben Sie die Riedbezeichnung ein:")
If str1 <> "" And Not IsNull(str1) Then
Dim db1 As Database
Dim rs1 As Recordset
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TRiede;")
rs1.AddNew
rnr1 = DMax("[RNR]", "TRiede") + 1
rs1!RNR = rnr1
rs1!GNR = Forms!FÜbernahme!TGNR
rs1!Bezeichnung = str1
rs1.Update
rs1.Close
TRNR.Requery
TRNR = rnr1
End If
End Sub
Private Sub Befehl183_Click()
If Not IsNull(TMGNR) And TMGNR <> "" Then
DoCmd.OpenForm "FMitgliedInfo"
End If
End Sub
Private Sub Befehl184_Click()
SetLieferscheinnummer
End Sub
Private Sub Befehl189_Click()
If LBishergeliefert.Visible = True Then
LBishergeliefert.Visible = False
TLiefersumme.Visible = False
XSumme1.Visible = False
XFeld1.Visible = False
XFeld2.Visible = False
XFeld3.Visible = False
XFeld4.Visible = False
XFeld5.Visible = False
Else
LBishergeliefert.Visible = True
TLiefersumme.Visible = True
XSumme1.Visible = True
XFeld1.Visible = True
XFeld2.Visible = True
XFeld3.Visible = True
XFeld4.Visible = True
XFeld5.Visible = True
End If
End Sub
Private Sub BKippen_Click()
' Switch RTS for 3 seconds
TheEvent = 0
'MsgBox ("Kippen auslösen")
Kippen (True)
While TheEvent < 3
DoEvents
Wend
'MsgBox ("Kippen zurück")
Kippen (False)
End Sub
Private Sub BS1_Click()
Dim ASNR1 As Long
Dim db1 As Database
Dim rs1 As Recordset
ASNR1 = BS1.Tag
'Check if this ASNR is already assigned
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag WHERE ASNR=" + Format(ASNR1) + " AND LINR=" + Format(TLINR))
If rs1.recordcount > 0 Then
Exit Sub
rs1.Close
End If
'Add to Table TLieferungenAbschlaege
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag")
rs1.AddNew
rs1!LINR = TLINR
rs1!ASNR = ASNR1
rs1.Update
FAbschlaege.Requery
rs1.Close
End Sub
Private Sub BS2_Click()
Dim ASNR1 As Long
Dim db1 As Database
Dim rs1 As Recordset
ASNR1 = BS2.Tag
'Check if this ASNR is already assigned
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag WHERE ASNR=" + Format(ASNR1) + " AND LINR=" + Format(TLINR))
If rs1.recordcount > 0 Then
Exit Sub
rs1.Close
End If
'Add to Table TLieferungenAbschlaege
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag")
rs1.AddNew
rs1!LINR = TLINR
rs1!ASNR = ASNR1
rs1.Update
FAbschlaege.Requery
rs1.Close
End Sub
Private Sub BS3_Click()
Dim ASNR1 As Long
Dim db1 As Database
Dim rs1 As Recordset
ASNR1 = BS3.Tag
'Check if this ASNR is already assigned
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag WHERE ASNR=" + Format(ASNR1) + " AND LINR=" + Format(TLINR))
If rs1.recordcount > 0 Then
Exit Sub
rs1.Close
End If
'Add to Table TLieferungenAbschlaege
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag")
rs1.AddNew
rs1!LINR = TLINR
rs1!ASNR = ASNR1
rs1.Update
FAbschlaege.Requery
rs1.Close
End Sub
Private Sub BS4_Click()
Dim ASNR1 As Long
Dim db1 As Database
Dim rs1 As Recordset
ASNR1 = BS4.Tag
'Check if this ASNR is already assigned
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag WHERE ASNR=" + Format(ASNR1) + " AND LINR=" + Format(TLINR))
If rs1.recordcount > 0 Then
Exit Sub
rs1.Close
End If
'Add to Table TLieferungenAbschlaege
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag")
rs1.AddNew
rs1!LINR = TLINR
rs1!ASNR = ASNR1
rs1.Update
FAbschlaege.Requery
rs1.Close
End Sub
Private Sub BWiegen_Click()
' Wiegung durchführen
Dim i As Integer
Dim countit
Dim retryvalue
Dim Datum As Date
Dim zeit As Date
Dim Gewicht As Long
Dim Waagentext As String
TimerAus = True
If IsNull(DMax("MGNR", "TMitglieder", "[Aktives Mitglied]=True AND MGNR=Forms!FÜbernahme!TMGNR")) Then
MsgBox "Bitte zuerst gültiges Mitglied eingeben !", vbCritical
TMGNR.SetFocus
Exit Sub
End If
If IsNull(DMax("SNR", "TSorten", "SNR=Forms!FÜbernahme!TSNR")) Then
MsgBox "Bitte zuerst gültige Sorte eingeben !", vbCritical
TSNR.SetFocus
Exit Sub
End If
If GetParameter("UEBERNAME_WIEGENVOROECHSLE") = "0" Then
If IsNull(TOechsle) Or TOechsle = "" Then
MsgBox "Bitte zuerst Oechsle eingeben !", vbCritical
TOechsle.SetFocus
Exit Sub
End If
End If
DoCmd.Hourglass True
TGewicht.SetFocus
BWiegen.Enabled = False
retryvalue = GetParameter("RETRY")
If IsNull(retryvalue) Or retryvalue = "" Then
retryvalue = 10
SetParameter "RETRY", CLng(retryvalue)
Else
retryvalue = CLng(retryvalue)
End If
If SerialInterface Then
If XComm.PortOpen = 0 Then
On Error GoTo PortOpenError1
XComm.PortOpen = 1
End If
End If
countit = 0
i = -1
While i < 0 And countit < retryvalue
If SerialInterface Then
XComm.InBufferCount = 0
End If
i = Wiegen(Datum, zeit, Gewicht, Waagentext)
countit = countit + 1
Wend
If SerialInterface Then
XComm.PortOpen = 0
End If
DoCmd.Hourglass False
BWiegen.Enabled = True
If i >= 0 Then
If Not IsNull(Datum) And Datum > DateValue("1.1.2000") Then
TDatum = Datum
End If
If Not IsNull(Uhrzeit) And Uhrzeit > TimeValue("3:00") Then
TUhrzeit = zeit
End If
If Not IsNull(Gewicht) Then
TGewicht.SetFocus
TGewicht = Gewicht
Else
TGewicht = i
End If
If Not IsNull(Waagentext) Then
TWaagentext = Waagentext
End If
OHandwiegung = 0
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
Else
MsgBox "Fehler Nr. " + Format(i) + ": Waage nicht bereit !", vbCritical
BWiegen.SetFocus
End If
TimerAus = False
Exit Sub
PortOpenError1:
MsgBox ("COM Port für Waage nicht verfügbar")
'BWiegen.Enabled = False
Exit Sub
End Sub
Private Sub FAbschlaege_Exit(Cancel As Integer)
GetAbschlaege
End Sub
Private Sub Form_Activate()
'RefreshAll
TCNR.Requery
End Sub
Private Sub Kombinationsfeld105_Change()
TSNR = TSorte
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If TLINR <> DMax("LINR", "TLieferungen") And Not IsNull(TLieferscheinnummer) And TLieferscheinnummer <> "" Then
If MsgBox("Diese Lieferung wurde bereits ausgedruckt ! Sind Sie sicher, dass Sie die Daten ändern möchten ?", vbYesNo) = vbNo Then
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End If
End Sub
Private Sub Form_Close()
TimerAus = True
LetztenLieferscheinLöschen
TheEvent = 10
WiegenBeenden
If SerialInterface Then
If XComm.PortOpen = 1 Then
XComm.PortOpen = 0
End If
If XCommSteuerung.PortOpen = 1 Then
XCommSteuerung.PortOpen = 0
End If
End If
End Sub
Private Sub Form_Current()
'MsgBox ("BeimAnzeigen")
RefreshAll
TMGNR.SetFocus
End Sub
Private Sub Form_Open(Cancel As Integer)
TimerAus = False
Freigabe (True)
FreigabeErteilt = True
SchnellauswahlAnlegen
NewLieferschein
RefreshAll
'Reihenfolge TOechsle-BWiegen
If IsNull(GetParameter("UEBERNAME_WIEGENVOROECHSLE")) Then
SetParameter "UEBERNAME_WIEGENVOROECHSLE", "0"
End If
If GetParameter("UEBERNAME_WIEGENVOROECHSLE") = "1" Then
BWiegen.TabIndex = 8
TGewicht.TabIndex = 9
TOechsle.TabIndex = 10
BDrucken.TabIndex = 11
End If
WiegenInitialisieren
'Serial interface needed?
If GetParameter("WAAGENTYP") = "L246" Then
SerialInterface = False
Else
SerialInterface = True
End If
'COM Port Waage öffnen
If SerialInterface Then
XComm.Settings = GetParameter("WAAGEPORTSETTINGS")
XComm.CommPort = GetParameter("WAAGEPORT")
XCommSteuerung.CommPort = GetParameter("STEUERUNGPORT")
End If
'DoCmd.Save acForm, "FÜbernahme"
'DoCmd.Close acForm, "FÜbernahme", acSaveYes
If IsNull(GetParameter("UEBERNAHME_WAAGESENDETZUERST")) Then
SetParameter "UEBERNAHME_WAAGESENDETZUERST", "0"
End If
If GetParameter("UEBERNAHME_WAAGESENDETZUERST") = "1" Then
'port öffnen
If SerialInterface Then
If XComm.PortOpen = 0 Then
On Error GoTo PortOpenError1
XComm.PortOpen = 1
End If
End If
BWiegen.Enabled = False
End If
If GetParameter("WAAGENMONITOR") = "1" Then
'port öffnen
If SerialInterface Then
If XComm.PortOpen = 0 Then
On Error GoTo PortOpenError1
XComm.PortOpen = 1
End If
End If
End If
Exit Sub
PortOpenError1:
MsgBox ("COM Port für Waage nicht verfügbar")
'BWiegen.Enabled = False
Exit Sub
End Sub
Private Sub Form_Timer()
Dim Datum As Date
Dim zeit As Date
Dim Gewicht As Long
Dim Waagentext As String
Dim gewichtslimit As String
Dim result As Integer
TheEvent = TheEvent + 1
If GetParameter("UEBERNAHME_WAAGESENDETZUERST") = "1" And TimerAus = False Then
If Forms!FÜbernahme!XComm.InBufferCount > 0 Then
result = Wiegen(Datum, zeit, Gewicht, Waagentext)
If result >= 0 Then
If Not IsNull(Datum) Then
TDatum = Datum
End If
If Not IsNull(Uhrzeit) Then
TUhrzeit = zeit
End If
If Not IsNull(Gewicht) Then
TGewicht.SetFocus
TGewicht = Gewicht
Else
TGewicht = i
End If
If Not IsNull(Waagentext) Then
TWaagentext = Waagentext
End If
OHandwiegung = 0
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
Else
If result <> -9 Then
MsgBox "Fehler bei Kommunikation mit Waage!", vbCritical
End If
End If
End If
End If
gewichtslimit = GetParameter("WAAGENMONITORLIMIT")
If GetParameter("WAAGENMONITOR") = "1" And TimerAus = False Then
result = Wiegen(Datum, zeit, Gewicht, Waagentext, True)
If result >= 0 Then
'TTest = Format(result) + ": " + Format(Datum, "dd.mm.yyyy") + " " + Format(zeit, "hh:MM:ss") + " " + Format(Gewicht, "0") + "kg " + waagentext
TGewichtMonitor = Gewicht
Else
'TTest = Format(result)
End If
If result >= 0 Then
If Not IsNull(Gewicht) Then
If Gewicht >= gewichtslimit Then
DoCmd.Beep
If FreigabeErteilt = True Then
Freigabe (False)
FreigabeErteilt = False
End If
'If TheEvent Mod 2 = 0 Then
' Forms!FÜbernahme.Section(0).BackColor = 10874304
'Else
Forms!FÜbernahme.Section(0).BackColor = &HFF
'End If
Else
Forms!FÜbernahme.Section(0).BackColor = 10874304
If FreigabeErteilt = False Then
Freigabe (True)
FreigabeErteilt = True
End If
End If
End If
Else
'MsgBox "Fehler bei Kommunikation mit Waage!", vbCritical
End If
End If
End Sub
Private Sub LBishergeliefert_DblClick(Cancel As Integer)
If Not IsNull(LBishergeliefert) Then
TLieferscheinnummer.SetFocus
DoCmd.FindRecord LBishergeliefert, acEntire, , acSearchAll, , acCurrent
End If
End Sub
Private Sub OAbgewertet_Click()
If OAbgewertet = True Then
If Right(TLieferscheinnummer, 1) <> "A" Then
TLieferscheinnummer = TLieferscheinnummer + "A"
End If
Else
If Right(TLieferscheinnummer, 1) = "A" Then
TLieferscheinnummer = Left(TLieferscheinnummer, Len(TLieferscheinnummer) - 1)
End If
End If
End Sub
Private Sub OGerebelt_Alt_Click()
'If MsgBox("Soll der entsprechende Gewichtsanteil abgezogen werden ?", vbYesNo) = vbYes Then
Dim ra As Double
Dim gw As Double
ra = CDbl(GetParameter("REBELABZUG"))
gw = TGewicht
If OGerebelt.Value = False Then
gw = gw * (100 - ra) / 100
Else
gw = gw / (100 - ra) * 100
End If
TGewicht = gw
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
'End If
End Sub
Private Sub OSpaetlese_Click()
Dim Oechsle As Long
Dim QSNR As Long
Oechsle = CLng(TOechsle.Value)
QSNR = DFirst("QSNR", "TQualitaetsstufen", "Von<=" + Format(Oechsle) + " AND Bis>=" + Format(Oechsle))
If QSNR = 5 Then
If OSpaetlese.Value = True Then
TQSNR = 5
Else
TQSNR = 3
End If
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
End Sub
Private Sub TGewicht_Exit(Cancel As Integer)
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
End Sub
Private Sub TGNR_Exit(Cancel As Integer)
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
TRNR.Requery
End Sub
Private Sub TMGNR_Exit(Cancel As Integer)
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End Sub
Private Sub TMitglied_Click()
TMGNR = TMitglied
End Sub
Private Sub TMitglied_Exit(Cancel As Integer)
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Dim ort1
Dim GNR1
If Not IsNull(TMGNR) And Not IsNull(TOrt) Then
ort1 = TOrt
If InStr(ort1, " ") > 0 Then
ort1 = Left(ort1, InStr(ort1, " ") - 1)
End If
GNR1 = DFirst("GNR", "TGemeinden", "Bezeichnung='" + ort1 + "'")
If Not IsNull(GNR1) Then
TGNR = GNR1
Else
'Voller Ortsname ohne Leerzeichen
GNR1 = DFirst("GNR", "TGemeinden", "Bezeichnung='" + TOrt + "'")
If Not IsNull(GNR1) Then
TGNR = GNR1
End If
End If
End If
VollieferantenZuschlagEintragen
End Sub
Private Sub TOechsle_Exit(Cancel As Integer)
Dim CNR1 As Integer
If IsNull(TOechsle) Or TOechsle = 0 Or TOechsle = "" Then
Else
TQSNR.Value = DFirst("QSNR", "TQualitaetsstufen", "Von<=" + Format(TOechsle) + " AND Bis>=" + Format(TOechsle))
End If
If Not IsNull(TSNR) And Not IsNull(TQSNR) And Not IsNull(TZweigstelle) Then
CNR1 = GetActiveCharge(TSNR, TQSNR, TZweigstelle, TSANR)
If CNR1 > 0 Then
TCNR = CNR1
Else
'Warnung
If GetParameter("CHARGENWARNUNG") = "Ja" Then
If MsgBox("Es konnte keine Charge im Status 'Befüllung' für diese Übernahme gefunden werden. Wollen Sie eine Charge auswählen bzw. neu anlegen", vbYesNo) = vbYes Then
DoCmd.OpenForm ("FUebernahmeChargenauswahl")
End If
End If
End If
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
End Sub
Sub RefreshAll()
Dim w1
w1 = TOechsle
If Not IsNull(w1) And w1 <> "" Then
'TQualitaetsstufe.Caption = DMax("Bezeichnung", "TQualitaetsstufen", "QSNR=" + Format(TQSNR))
If TQSNR = 4 Then
OSpaetlese.Visible = True
Else
OSpaetlese.Visible = False
End If
TKW.Caption = "= " + Format((DMax("[KW]", "TUmrechnung", "Oechsle=" + Format(TOechsle)))) + " ° KW"
Else
TKW.Caption = ""
End If
If Not IsNull(TGNR) Then
TGLNR = DFirst("[GLNR]", "TGemeinden", "GNR=" + Format(TGNR))
If Not IsNull(TQSNR) And Not IsNull(TSNR) And Not IsNull(TGLNR) Then
TWBGNR = GetGebietGLNR(TSNR, TQSNR, TGLNR)
TRGNR = DFirst("[RGNR]", "TGebiete", "WBGNR=" + Format(TWBGNR))
End If
'TWBGNR = DFirst("[WBGNR]", "TGrosslagen", "GLNR=" + Format(TGLNR))
End If
LBishergeliefert.Requery
End Sub
Private Sub Befehl133_Click()
On Error GoTo Err_Befehl133_Click
DoCmd.GoToRecord , , acFirst
Exit_Befehl133_Click:
Exit Sub
Err_Befehl133_Click:
MsgBox Err.Description
Resume Exit_Befehl133_Click
End Sub
Private Sub Befehl134_Click()
On Error GoTo Err_Befehl134_Click
DoCmd.GoToRecord , , acPrevious
Exit_Befehl134_Click:
Exit Sub
Err_Befehl134_Click:
MsgBox Err.Description
Resume Exit_Befehl134_Click
End Sub
Private Sub Befehl135_Click()
On Error GoTo Err_Befehl135_Click
DoCmd.GoToRecord , , acNext
Exit_Befehl135_Click:
Exit Sub
Err_Befehl135_Click:
MsgBox Err.Description
Resume Exit_Befehl135_Click
End Sub
Private Sub Befehl136_Click()
On Error GoTo Err_Befehl136_Click
DoCmd.GoToRecord , , acLast
Exit_Befehl136_Click:
Exit Sub
Err_Befehl136_Click:
MsgBox Err.Description
Resume Exit_Befehl136_Click
End Sub
Private Sub Befehl137_Click()
On Error GoTo Err_Befehl137_Click
DoCmd.GoToRecord , , acNewRec
Exit_Befehl137_Click:
Exit Sub
Err_Befehl137_Click:
MsgBox Err.Description
Resume Exit_Befehl137_Click
TMGNR.SetFocus
End Sub
Private Sub Befehl138_Click()
If MsgBox("Sind Sie sicher, daß Sie diesen Datensatz löschen möchten (ev. stornieren) ?", vbYesNo) = vbYes Then
On Error GoTo Err_Befehl138_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Befehl138_Click:
Exit Sub
Err_Befehl138_Click:
MsgBox Err.Description
Resume Exit_Befehl138_Click
End If
End Sub
Private Sub Befehl141_Click()
If MsgBox("Wollen Sie diese Lieferung wirklich stornieren ?", vbYesNo) = vbYes Then
If Not IsNull(TCNR) And TGewicht > 0 And TOechsle > 0 Then
If MsgBox("Wollen Sie die Liefermenge bei der zugeordneten Charge ebenfalls abziehen?", vbYesNo) = vbYes Then
ChargeBefuellungRueckgaengig TCNR, TLINR
TCNR = ""
End If
End If
TGewicht = 0
OStorniert = 1
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
End If
End Sub
Private Sub TSANR_Click()
'If TSANR.Column(1) = "Sekt" Then
' TQSNR = 0
'End If
End Sub
Private Sub TSNR_Exit(Cancel As Integer)
TSNR = UCase(TSNR)
Dim SNR1 As String
Dim SANR1 As String
If IsNull(TSNR) Then
Exit Sub
End If
If GetSNRAndSANRFromInput(TSNR, SNR1, SANR1) Then
TSNR = SNR1
TSANR = SANR1
Else
TSANR = Null
End If
If DCount("[SNR]", "TSorten", "SNR='" + TSNR + "'") = 0 Then
MsgBox "Bitte geben Sie ein gültiges Sortenkürzel ein!", vbCritical
'TSNR =
TSNR.SetFocus
Exit Sub
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
RefreshAll
Dim mgnr1
Dim flageb1
mgnr1 = TMGNR
SNR1 = TSNR
If IsNull(SNR1) Or IsNull(mgnr1) Then
Exit Sub
End If
flageb1 = DSum("Flaeche", "TFlaechenbindungen", "SNR='" + Format(SNR1) + "' AND MGNR=" + Format(mgnr1))
If Not IsNull(flageb1) And flageb1 > 0 Then
OGebunden = True
Else
OGebunden = False
End If
End Sub
Sub SetLieferscheinnummer()
Dim newLieferscheinnummer As String
Dim tag1 As String
Dim mon1 As String
Dim Jahr1 As String
Dim temp1
Dim lief1 As String
Dim zwst1 As String
tag1 = Format(Day(TDatum.Value), "00")
mon1 = Format(Month(TDatum.Value), "00")
Jahr1 = Format(year(TDatum.Value), "0000")
'MsgBox ("[Datum]=DateValue('" + Format(TDatum, "dd.mm.yyyy") + "')")
temp1 = DCount("[LINR]", "TLieferungen", "[Datum]=DateValue('" + Format(TDatum, "dd.mm.yyyy") + "') AND TLieferungen.ZNR=" + Format(TZweigstelle))
If IsNull(temp1) Then
lief1 = Format(1, "000")
Else
lief1 = Format(temp1, "000")
End If
zwst1 = DMax("[Kennbst]", "TZweigstellen", "ZNR=" + Format(TZweigstelle))
newLieferscheinnummer = Jahr1 + mon1 + tag1 + zwst1 + lief1
TLieferscheinnummer = newLieferscheinnummer
End Sub
Public Sub send(ByVal b As Byte)
' Sends 1 Byte to serial interface
Dim buff As Variant
ReDim buff(0 To 0) As Byte
buff(0) = b
Forms!FÜbernahme!XComm.Output = buff
While Forms!FÜbernahme!XComm.OutBufferCount > 0
Wend
End Sub
Public Function Receive() As Integer
' Receives 1 byte from serial interface
' Timeout after 'MPreferences.ICommTimeout' milliseconds
Dim i As Variant
On Error GoTo err1
Forms!FÜbernahme!XComm.InputLen = 1
TheEvent = 0
While Forms!FÜbernahme!XComm.InBufferCount < 1 And TheEvent < 1
DoEvents
If Forms!FÜbernahme.ActiveControl = False Then
Exit Function
End If
Wend
ReDim i(1)
If Forms!FÜbernahme!XComm.InBufferCount >= 1 Then
i = Forms!FÜbernahme!XComm.Input
'MsgBox (i(0))
Receive = i(0)
Else
Receive = -1
End If
Exit Function
err1:
Receive = -1
End Function
Private Sub Befehl186_Click()
DoCmd.OpenForm "MLieferungSuchen"
End Sub
Sub NewLieferschein()
Dim db1 As Database
Dim rs1 As Recordset
Dim rs2 As Recordset
Dim LINR1 As Long
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("TLieferungen")
rs1.AddNew
If IsNull(DMax("LINR", "TLieferungen")) Then
rs1!LINR = 1
Else
rs1!LINR = DMax("LINR", "TLieferungen") + 1
'rs1!ZNR = DMax("[ZNR]", "TLieferungen", "[LINR]=" + Format(DMax("[LINR]", "TLieferungen", "[LINR]<>" + Format(rs1!LINR))))
rs1!ZNR = GetParameter("LETZTEZNR")
rs1!Gerebelt = DMax("[Gerebelt]", "TLieferungen", "[LINR]=" + Format(DMax("[LINR]", "TLieferungen", "[LINR]<>" + Format(rs1!LINR))))
End If
LINR1 = rs1!LINR
rs1!Datum = Date
rs1!Uhrzeit = time
rs1.Update
rs1.Close
' Standardabschläge suchen
On Error GoTo EndNew
Set rs1 = db1.OpenRecordset("SELECT * FROM TAbschlaege WHERE Standard=TRUE")
Set rs2 = db1.OpenRecordset("TLieferungAbschlag")
While Not rs1.EOF
rs2.AddNew
rs2!LINR = LINR1
rs2!ASNR = rs1!ASNR
rs2.Update
rs1.MoveNext
Wend
rs1.Close
rs2.Close
EndNew:
Requery
DoCmd.GoToRecord acActiveDataObject, , acLast
End Sub
Sub LetztenLieferscheinLöschen()
Dim db1 As Database
Dim rs1 As Recordset
Dim LINR1
LINR1 = DMax("LINR", "TLieferungen")
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungen WHERE LINR=" + Format(LINR1))
rs1.MoveLast
If rs1!Gewicht = 0 Or IsNull(rs1!Gewicht) Then
LINR1 = rs1!LINR
rs1.Delete
db1.Execute ("DELETE * FROM TLieferungAbschlag WHERE LINR=" + Format(LINR1))
End If
rs1.Close
End Sub
Private Sub TZweigstelle_Exit(Cancel As Integer)
If Not IsNull(TZweigstelle) Then
SetParameter "LETZTEZNR", TZweigstelle
End If
End Sub
Function GetAbschlaege() As Integer
Dim db1 As Database
Dim rs1 As Recordset
Dim str1 As String
str1 = ""
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag INNER JOIN TAbschlaege ON TLieferungAbschlag.ASNR = TAbschlaege.ASNR WHERE LINR = " + Format(TLINR))
GetAbschlaege = rs1.recordcount
While Not rs1.EOF
str1 = str1 + rs1!Bezeichnung
rs1.MoveNext
If Not rs1.EOF Then
str1 = str1 + Chr(13) + Chr(10)
End If
Wend
rs1.Close
TAbschlaege = str1
End Function
Sub SchnellauswahlAnlegen()
Dim db1 As Database
Dim rs1 As Recordset
Dim max1 As Long
Dim i, j As Long
Dim bs_name As String
max1 = 4 ' derzeit 4 Buttons
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TAbschlaege WHERE Schnellauswahl=True")
i = 0
While Not rs1.EOF And i < max1
str1 = str1 + rs1!Bezeichnung
bs_name = "BS" + Format(i + 1, "0")
Controls(bs_name).Visible = True
Controls(bs_name).Caption = rs1!Bezeichnung
Controls(bs_name).Tag = rs1!ASNR
i = i + 1
rs1.MoveNext
Wend
rs1.Close
For j = i To max1 - 1
bs_name = "BS" + Format(j + 1, "0")
Controls(bs_name).Visible = False
Next j
End Sub
Sub VollieferantenZuschlagEintragen()
Dim db1 As Database
Dim rs1 As Recordset
Dim ASNR1 As Long
max1 = 4 ' derzeit 4 Buttons
If Not IsNull(TMGNR) Then
If DFirst("Volllieferant", "TMitglieder", "MGNR=" + Format(TMGNR)) = True Then
If Not IsNull(DFirst("ASNR", "TAbschlaege", "Bezeichnung='Treuebonus'")) Then
ASNR1 = DFirst("ASNR", "TAbschlaege", "Bezeichnung='Treuebonus'")
Set db1 = CurrentDb
'Check if this ASNR is already assigned
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag WHERE ASNR=" + Format(ASNR1) + " AND LINR=" + Format(TLINR))
If rs1.recordcount > 0 Then
Exit Sub
rs1.Close
End If
'Add to Table TLieferungenAbschlaege
Set db1 = CurrentDb
Set rs1 = db1.OpenRecordset("SELECT * FROM TLieferungAbschlag")
rs1.AddNew
rs1!LINR = TLINR
rs1!ASNR = ASNR1
rs1.Update
FAbschlaege.Requery
rs1.Close
End If
End If
End If
End Sub