Option Compare Database Option Explicit Sub test() SwitchToolbars (True) End Sub Function SwitchToolbars(onoff As Boolean) 'For Runtime Exit Function If (onoff) Then DoCmd.ShowToolbar "Menüleiste", acToolbarYes ' DoCmd.ShowToolbar "Formularansicht", acToolbarYes DoCmd.ShowToolbar "Datenbank", acToolbarYes DoCmd.SetDisplayedCategories (True) 'ÄndernEigenschaft "StartupForm", dbText, "MHauptmenü" ÄndernEigenschaft "StartupShowDBWindow", dbBoolean, True ÄndernEigenschaft "StartupShowStatusBar", dbBoolean, True ÄndernEigenschaft "AllowFullMenus", dbBoolean, True Else DoCmd.ShowToolbar "Menüleiste", acToolbarNo DoCmd.ShowToolbar "Formularansicht", acToolbarNo DoCmd.ShowToolbar "Datenbank", acToolbarNo DoCmd.SetDisplayedCategories (False) 'ÄndernEigenschaft "StartupForm", dbText, "MHauptmenü" ÄndernEigenschaft "StartupShowDBWindow", dbBoolean, False ÄndernEigenschaft "StartupShowStatusBar", dbBoolean, False ÄndernEigenschaft "AllowFullMenus", dbBoolean, False End If End Function Function StartupValues() 'ÄndernEigenschaft "StartupShowDBWindow", dbBoolean, False 'ÄndernEigenschaft "StartupShowStatusBar", dbBoolean, False End Function Function ÄndernEigenschaft(strEigenschaftenname As String, varEigenschaftentyp As Variant, varEigenschaftenwert As Variant) As Integer Dim dbs As Database, prp As property Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Ändern_Fehler dbs.Properties(strEigenschaftenname) = varEigenschaftenwert ÄndernEigenschaft = True Ändern_Ende: Exit Function Ändern_Fehler: If Err = conPropNotFoundError Then ' Eigenschaft nicht gefunden. Set prp = dbs.CreateProperty(strEigenschaftenname, _ varEigenschaftentyp, varEigenschaftenwert) dbs.Properties.Append prp Resume Next Else ' Unbekannter Fehler. ÄndernEigenschaft = False Resume Ändern_Ende End If End Function Function GetLocalParameter(Name1 As String) As Variant GetLocalParameter = DFirst("[Wert]", "lParameter", "[Bezeichnung]='" + UCase(Name1) + "'") End Function Function GetParameter(Name1 As String) As Variant GetParameter = DFirst("[Wert]", "TParameter", "[Bezeichnung]='" + UCase(Name1) + "'") End Function Sub SetParameter(Name1 As String, value1 As String) Dim db1 As Database Dim rs1 As Recordset Dim found As Boolean Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT Bezeichnung,Wert FROM TParameter;") found = False rs1.MoveFirst While (Not rs1.EOF) If (UCase(rs1!Bezeichnung) = UCase(Name1)) Then found = True rs1.MoveNext Wend rs1.Close Set rs1 = db1.OpenRecordset("SELECT Bezeichnung,Wert FROM TParameter;") If found = True Then rs1.MoveFirst While (UCase(rs1!Bezeichnung) <> UCase(Name1)) rs1.MoveNext Wend rs1.Edit rs1!Wert = value1 rs1.Update Else: rs1.AddNew rs1!Bezeichnung = Name1 rs1!Wert = value1 rs1.Update End If rs1.Close End Sub Sub SetLocalParameter(Name1 As String, value1 As String) Dim db1 As Database Dim rs1 As Recordset Dim found As Boolean Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT Bezeichnung,Wert FROM lParameter;") found = False rs1.MoveFirst While (Not rs1.EOF) If (UCase(rs1!Bezeichnung) = UCase(Name1)) Then found = True rs1.MoveNext Wend rs1.Close Set rs1 = db1.OpenRecordset("SELECT Bezeichnung,Wert FROM lParameter;") If found = True Then rs1.MoveFirst While (UCase(rs1!Bezeichnung) <> UCase(Name1)) rs1.MoveNext Wend rs1.Edit rs1!Wert = value1 rs1.Update Else: rs1.AddNew rs1!Bezeichnung = Name1 rs1!Wert = value1 rs1.Update End If rs1.Close End Sub Function Qualitätsstufe(Oechsle) As Variant If IsNull(Oechsle) Then Qualitätsstufe = Null Else Dim db1 As Database Dim rs1 As Recordset Set db1 = CurrentDb Qualitätsstufe = "" Set rs1 = db1.OpenRecordset("SELECT Bezeichnung,Von,Bis FROM TQualitaetsstufen;") rs1.MoveFirst While Not rs1.EOF If Oechsle >= rs1!Von And Oechsle <= rs1!Bis Then Qualitätsstufe = rs1!Bezeichnung End If rs1.MoveNext Wend rs1.Close End If End Function Function QSNR(Oechsle As Long) As Long If IsNull(Oechsle) Then QSNR = Null Else Dim db1 As Database Dim rs1 As Recordset Set db1 = CurrentDb QSNR = Null Set rs1 = db1.OpenRecordset("SELECT QSNR,Von,Bis FROM TQualitaetsstufen;") rs1.MoveFirst While Not rs1.EOF If Oechsle >= rs1!Von And Oechsle <= rs1!Bis Then QSNR = rs1!QSNR End If rs1.MoveNext Wend rs1.Close End If End Function Function Fileexist(filename As String) As Boolean On Error GoTo NoFile If FileSystem.GetAttr(filename) >= 0 Then Fileexist = True Else Fileexist = False End If Exit Function NoFile: Fileexist = False Exit Function End Function Function GetAppPath() As String Dim db1 As Database Set db1 = CurrentDb 'GetAppPath = Mid(db1.Name, 1, Len(db1.Name) - Len("WGMASTER.ACCDB")) GetAppPath = Mid(db1.Name, 1, Len(db1.Name) - Len("WGMASTER2010.ACCDB")) End Function Function GetDataPath() As String Dim datapath As String datapath = DFirst("Data", "Mandanten", "MANR=" + Format(Forms!MMandantenauswahl!LMandanten)) GetDataPath = datapath End Function Function GetPathWithoutFilename(fullpath As String) As String Dim str1 As String str1 = fullpath While Len(str1) > 0 And Mid(str1, Len(str1), 1) <> "\" str1 = Mid(str1, 1, Len(str1) - 1) If str1 = "" Then GetPathWithoutFilename = "" Exit Function End If Wend GetPathWithoutFilename = str1 End Function Function GetLastMANR() As Long Dim db1 As Database Dim rs1 As Recordset Dim found As Boolean Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT * FROM Mandanten;") GetLastMANR = -1 While (Not rs1.EOF) If rs1!Last = True Then GetLastMANR = rs1!MANR End If rs1.MoveNext Wend rs1.Close End Function Sub SetLastMANR(manr1 As Long) Dim db1 As Database Dim rs1 As Recordset Dim found As Boolean Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT * FROM Mandanten;") found = False While (Not rs1.EOF) If rs1!Last = True Then rs1.Edit rs1!Last = False rs1.Update End If If rs1!MANR = manr1 Then rs1.Edit rs1!Last = True rs1.Update End If rs1.MoveNext Wend rs1.Close End Sub Public Function Runden(value1 As Double, digits As Integer) As Double Dim temp1 As Double temp1 = value1 * (10 ^ digits) If (temp1 * 10) Mod 10 = 5 Then temp1 = temp1 + 1 temp1 = Fix(temp1) temp1 = temp1 / (10 ^ digits) Runden = temp1 Else Runden = CLng(value1 * (10 ^ digits)) / (10 ^ digits) End If End Function Public Function GetAbschlägeAsString(LINR1 As Long) As String Const separator = " / " Const separator_length = 3 Dim db1 As Database Dim rs1 As Recordset Dim resultString As String Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT TAbschlaege.* FROM (TLieferungAbschlag INNER JOIN TAbschlaege ON TLieferungAbschlag.ASNR = TAbschlaege.ASNR) INNER JOIN TLieferungen ON TLieferungAbschlag.LINR = TLieferungen.LINR WHERE TLieferungen.LINR=" + Format(LINR1)) resultString = "" While Not rs1.EOF resultString = resultString + separator + rs1!Bezeichnung rs1.MoveNext Wend rs1.Close If resultString <> "" Then resultString = Mid(resultString, 1 + separator_length) GetAbschlägeAsString = resultString End Function Public Function GetSNRAndSANRFromInput(SNRInput As String, SNR As String, SANR As String) As Boolean Dim db1 As Database Dim rs1 As Recordset Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT * FROM TSortenAttributeEingabe WHERE SNREingabe='" + SNRInput + "'") If Not rs1.EOF Then SNR = rs1("SNR") SANR = rs1("SANR") GetSNRAndSANRFromInput = True Else GetSNRAndSANRFromInput = False End If rs1.Close End Function Public Function GetGebietGLNR(SNR As String, QSNR As Long, GLNR As Long) As Long Dim db1 As Database Dim rs1 As Recordset Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslageGebietSorte WHERE SNR='" + SNR + "' AND MinQSNR<=" + Format(QSNR) + " AND GLNR=" + Format(GLNR)) If rs1.EOF Then rs1.Close 'Standardgebiet nehmen Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslagen WHERE GLNR=" + Format(GLNR)) End If GetGebietGLNR = rs1("WBGNR") rs1.Close End Function Public Function GetGebiet(SNR As String, QSNR As Long, GLNR As Long) As String Dim db1 As Database Dim rs1 As Recordset Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslageGebietSorte WHERE SNR='" + SNR + "' AND MinQSNR<=" + Format(QSNR) + " AND GLNR=" + Format(GLNR)) If rs1.EOF Then rs1.Close 'Standardgebiet nehmen Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslagen WHERE GLNR=" + Format(GLNR)) End If GetGebiet = DFirst("Bezeichnung", "TGebiete", "WBGNR=" + Format(rs1("WBGNR"))) rs1.Close End Function Public Function GetHerkunft(SNR1 As String, QSNR1 As Long, GNR1 As Long) As String Dim db1 As Database Dim rs1 As Recordset Dim WBGNR1 As Long Dim RGNR1 As Long Dim GLNR1 As Long GLNR1 = DFirst("GLNR", "TGemeinden", "GNR=" + Format(GNR1)) Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslageGebietSorte WHERE SNR='" + SNR1 + "' AND MinQSNR<=" + Format(QSNR1) + " AND GLNR=" + Format(GLNR1)) If Not rs1.EOF Then 'Spezialeintrag für diese Sorte und Qualität existiert WBGNR1 = rs1("WBGNR") Else rs1.Close 'Standardgebiet nehmen Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslagen WHERE GLNR=" + Format(GLNR1)) WBGNR1 = rs1("WBGNR") End If rs1.Close RGNR1 = DFirst("RGNR", "TGebiete", "WBGNR=" + Format(WBGNR1)) If Not IsNull(DFirst("Herkunftsbezeichnung", "TQualitaetsstufen", "QSNR=" + Format(QSNR1))) Then Select Case DFirst("Herkunftsbezeichnung", "TQualitaetsstufen", "QSNR=" + Format(QSNR1)) Case "Land": GetHerkunft = "Österreich" Case "Region": GetHerkunft = DFirst("Bezeichnung", "TRegionen", "RGNR=" + Format(RGNR1)) Case "Gebiet": GetHerkunft = DFirst("Bezeichnung", "TGebiete", "WBGNR=" + Format(WBGNR1)) Case "Grosslage": GetHerkunft = DFirst("Bezeichnung", "TGrosslagen", "GLNR=" + Format(GLNR1)) Case "Gemeinde": GetHerkunft = DFirst("Bezeichnung", "TGemeinden", "GNR=" + Format(GNR1)) End Select Else GetHerkunft = DFirst("Bezeichnung", "TRegionen", "RGNR=" + Format(RGNR1)) End If End Function Public Function GetHerkunftBKI(SNR1 As String, QSNR1 As Long, GNR1 As Long) As String Dim db1 As Database Dim rs1 As Recordset Dim WBGNR1 As Long Dim RGNR1 As Long Dim GLNR1 As Long GLNR1 = DFirst("GLNR", "TGemeinden", "GNR=" + Format(GNR1)) Set db1 = CurrentDb Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslageGebietSorte WHERE SNR='" + SNR1 + "' AND MinQSNR<=" + Format(QSNR1) + " AND GLNR=" + Format(GLNR1)) If Not rs1.EOF Then 'Spezialeintrag für diese Sorte und Qualität existiert WBGNR1 = rs1("WBGNR") Else rs1.Close 'Standardgebiet nehmen Set rs1 = db1.OpenRecordset("SELECT WBGNR FROM TGrosslagen WHERE GLNR=" + Format(GLNR1)) WBGNR1 = rs1("WBGNR") End If rs1.Close RGNR1 = DFirst("RGNR", "TGebiete", "WBGNR=" + Format(WBGNR1)) If QSNR1 < 3 Then GetHerkunftBKI = DFirst("Herkunftsbezeichnung", "TQualitaetsstufen", "QSNR=" + Format(QSNR1)) Else GetHerkunftBKI = DFirst("BKIKuerzel", "TGebiete", "WBGNR=" + Format(WBGNR1)) End If End Function