Files
elwig-misc/wgmaster/vba/Form_MExportMitglieder.frm
2022-11-14 23:29:49 +01:00

412 lines
9.7 KiB
Plaintext

'Globals for data exchange with export functions
Dim mgnr1 As String
Dim nachname1 As String
Dim vorname1 As String
Dim strasse1 As String
Dim plz1 As String
Dim ort1 As String
Dim betriebsnummer1 As String
Dim ga1 As String
Dim ga2 As String
Dim eintrittsdatum1 As String
Dim austrittsdatum1 As String
Dim buchführend1 As String
Dim anmerkung1 As String
Dim aktivesmitglied1 As String
Dim bhkontonr1 As String
Dim blz1 As String
Dim bankname1 As String
Dim bankname2 As String
Dim kontonr1 As String
Dim zweigstelle1 As String
'Globals for bmd export
Dim Branche1 As String
Dim Auslandscode1 As String
Dim Zahlungsziel1 As String
Dim Skonto1 As String
Dim Skonto2 As String
Dim Mahncode1 As String
Dim Verkaufsgebiet1 As String
Private Sub BOk_Click()
If Fileexists(TExportDatei) Then
If MsgBox("Datei " + TExportDatei + " existiert bereits ! Überschreiben", vbYesNo) = vbYes Then
ExportMitglieder (TExportDatei)
DoCmd.Close
End If
Else
If Not IsNull(TExportDatei) And TExportDatei <> "" Then
ExportMitglieder (TExportDatei)
DoCmd.Close
Else
MsgBox "Bitte geben Sie eine Exportdatei an !", vbCritical
End If
End If
End Sub
Private Sub Form_Close()
If Not IsNull(TExportDatei) And TExportDatei <> "" Then
Select Case OExportOption
Case 1: ' CDF
SetParameter "MITGLIEDEREXPORTDATEI1", TExportDatei
Case 2: ' BMD
SetParameter "MITGLIEDEREXPORTDATEI2", TExportDatei
End Select
End If
SetParameter "MITGLIEDEREXPORTDEFAULT", OExportOption
End Sub
Private Sub Form_Open(Cancel As Integer)
If IsNull(GetParameter("MITGLIEDEREXPORTDEFAULT")) Then
SetParameter "MITGLIEDEREXPORTDEFAULT", 1
End If
OExportOption = GetParameter("MITGLIEDEREXPORTDEFAULT")
Select Case OExportOption
Case 1: 'CDF
If IsNull(GetParameter("MITGLIEDEREXPORTDATEI1")) Then
SetParameter "MITGLIEDEREXPORTDATEI1", "C:\MITGLIEDER.TXT"
End If
TExportDatei = GetParameter("MITGLIEDEREXPORTDATEI1")
Case 2: 'BMD
If IsNull(GetParameter("MITGLIEDEREXPORTDATEI2")) Then
SetParameter "MITGLIEDEREXPORTDATEI2", "C:\PEKOSTAM.BMD"
End If
TExportDatei = GetParameter("MITGLIEDEREXPORTDATEI2")
End Select
End Sub
Function Fileexists(filename As String) As Boolean
On Error GoTo NoFile
If FileSystem.GetAttr(filename) >= 0 Then
Fileexists = True
Else
Fileexists = False
End If
Exit Function
NoFile:
Fileexists = False
Exit Function
End Function
Sub ExportMitglieder(filename1 As String)
Dim db1 As Database
Dim rs_mitglieder As Recordset
Dim query1 As String
Dim Lesejahr1 As Long
Dim rcounter As Long
Dim line1 As String
Dim filenum
DoCmd.Hourglass True
query1 = "SELECT TMitglieder.*, TZweigstellen.Name, TBanken.Name1, TBanken.Name2, TMitglieder.Nachname, TMitglieder.Vorname FROM (TBanken RIGHT JOIN TMitglieder ON TBanken.BLZ = TMitglieder.BLZ) LEFT JOIN TZweigstellen ON TMitglieder.ZNR = TZweigstellen.ZNR ORDER BY TMitglieder.Nachname, TMitglieder.Vorname"
Set db1 = CurrentDb
Set rs_mitglieder = db1.OpenRecordset(query1)
rcounter = 0
sum_netto1 = 0
sum_mwst1 = 0
sum_brutto1 = 0
filenum = FreeFile
On Error GoTo err1:
Open filename1 For Output As filenum
Select Case OExportOption
Case 1: ' CDF
PrintMitgliederCDFHeader (filenum)
Case 2: ' BMD
PrintMitgliederBMDHeader (filenum)
End Select
While Not rs_mitglieder.EOF
mgnr1 = Format(rs_mitglieder![MGNR])
If IsNull(rs_mitglieder![TMitglieder.Nachname]) Then nachname1 = "" Else nachname1 = rs_mitglieder![TMitglieder.Nachname]
If IsNull(rs_mitglieder![TMitglieder.Vorname]) Then vorname1 = "" Else vorname1 = rs_mitglieder![TMitglieder.Vorname]
If IsNull(rs_mitglieder![Straße]) Then strasse1 = "" Else strasse1 = rs_mitglieder![Straße]
If IsNull(rs_mitglieder![PLZ]) Then plz1 = "" Else plz1 = rs_mitglieder!PLZ
If IsNull(rs_mitglieder!Ort) Then ort1 = "" Else ort1 = rs_mitglieder!Ort
If IsNull(rs_mitglieder!BLZ) Then blz1 = "" Else blz1 = rs_mitglieder!BLZ
If IsNull(rs_mitglieder!KontoNr) Then kontonr1 = "" Else kontonr1 = rs_mitglieder!KontoNr
If IsNull(rs_mitglieder!BHKontonummer) Then bhkontonr1 = "" Else bhkontonr1 = rs_mitglieder!BHKontonummer
If IsNull(rs_mitglieder!Name1) Then bankname1 = "" Else bankname1 = rs_mitglieder!Name1
If IsNull(rs_mitglieder!Name2) Then bankname2 = "" Else bankname2 = rs_mitglieder!Name2
If IsNull(rs_mitglieder!Name) Then zweigstelle1 = "" Else zweigstelle1 = rs_mitglieder!Name
If IsNull(rs_mitglieder!Betriebsnummer) Then betriebsnummer1 = "" Else betriebsnummer1 = rs_mitglieder!Betriebsnummer
If IsNull(rs_mitglieder![Geschäftsanteile1]) Then ga1 = "" Else ga1 = rs_mitglieder![Geschäftsanteile1]
If IsNull(rs_mitglieder![Geschäftsanteile2]) Then ga2 = "" Else ga2 = rs_mitglieder![Geschäftsanteile2]
If IsNull(rs_mitglieder![Eintrittsdatum]) Then eintrittsdatum1 = "" Else eintrittsdatum1 = Format(rs_mitglieder![Eintrittsdatum], "dd.mm.yyyy")
If IsNull(rs_mitglieder![Austrittsdatum]) Then austrittsdatum1 = "" Else austrittsdatum1 = Format(rs_mitglieder![Austrittsdatum], "dd.mm.yyyy")
If rs_mitglieder![Buchführend] Then buchführend1 = "buchführend" Else buchführend1 = ""
If IsNull(rs_mitglieder![Anmerkung]) Then anmerkung1 = "" Else anmerkung1 = rs_mitglieder![Anmerkung]
If rs_mitglieder![Aktives Mitglied] Then aktivesmitglied1 = "aktiv" Else aktivesmitglied1 = ""
' output to file
Select Case OExportOption
Case 1: ' CDF
PrintMitgliederCDFData (filenum)
Case 2: ' BMD
PrintMitgliederBMDData (filenum)
End Select
rs_mitglieder.MoveNext
rcounter = rcounter + 1
Wend
Close filenum
rs_mitglieder.Close
DoCmd.Hourglass False
MsgBox (Format(rcounter) + " Mitglieder erfolgreich exportiert !")
Exit Sub
err1:
MsgBox "Datei bereits geöffnet !", vbCritical
DoCmd.Hourglass False
End Sub
Private Sub OExportOption_Click()
Select Case OExportOption
Case 1: 'CDF
If IsNull(GetParameter("MITGLIEDEREXPORTDATEI1")) Then
SetParameter "MITGLIEDEREXPORTDATEI1", "C:\MITGLIEDER.TXT"
End If
TExportDatei = GetParameter("MITGLIEDEREXPORTDATEI1")
Case 2: 'BMD
If IsNull(GetParameter("MITGLIEDEREXPORTDATEI2")) Then
SetParameter "MITGLIEDEREXPORTDATEI2", "C:\PEKOSTAM.BMD"
End If
TExportDatei = GetParameter("MITGLIEDEREXPORTDATEI2")
End Select
End Sub
' ******************************************************************************
' THE EXPORT ROUTINES
' ******************************************************************************
' ******************************************************************************
' CDF EXPORT
' ******************************************************************************
Sub PrintMitgliederCDFData(filenumber)
Dim s1 As String
s1 = ";"
Print #filenumber, mgnr1 + s1 + nachname1 + s1 + vorname1 + s1 + strasse1 + s1 + plz1 + s1 + ort1 + s1 + kontonr1 + s1 + blz1 + s1 + bankname1 + s1 + bankname2 + s1 + zweigstelle1 + s1 + betriebsnummer1 + s1 + ga1 + s1 + ga2 + s1 + Format(eintrittsdatum1) + s1 + Format(austrittsdatum1) + s1 + buchführend1 + s1 + aktivesmitglied1
End Sub
Sub PrintMitgliederCDFHeader(filenumber)
Dim line1 As String
Dim s1 As String
s1 = ";"
line1 = ""
Print #filenumber, "MITGLIEDERLISTE"
Print #filenumber, ""
Print #filenumber, "MITGLIEDSNUMMER" + s1 + "NACHNAME" + s1 + "VORNAME" + s1 + "STRASSE" + s1 + "PLZ" + s1 + "ORT" + s1 + "KONTONUMMER" + s1 + "BLZ" + s1 + "BANKNAME1" + s1 + "BANKNAME2" + s1 + "ZWEIGSTELLE" + s1 + "BETRIEBSNUMMER" + s1 + "GESCHÄFTSANTEILE1" + s1 + "GESCHÄFTSANTEILE2" + s1 + "EINTRITT" + s1 + "AUSTRITT" + s1 + "BUCHFÜHREND" + s1 + "AKTIVES MITGLIED"
End Sub
' ******************************************************************************
' BMD EXPORT
' ******************************************************************************
Sub PrintMitgliederBMDData(filenumber)
Dim line1 As String
Dim str1 As String
line1 = ""
str1 = ""
'bhkontonr
str1 = FillUp(bhkontonr1, 6, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'bezeichnung (name)
str1 = FillUp(nachname1 + " " + vorname1, 30, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'branche
str1 = FillUp(Branche1, 25, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'straße
str1 = FillUp(strasse1, 20, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'plz
str1 = FillUp(plz1, 7, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'ort
str1 = FillUp(ort1, 20, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'bankkonto
str1 = FillUp(kontonr1, 20, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'blz
str1 = FillUp(blz1, 6, 0, " ")
line1 = line1 + str1
'MsgBox (str1)
'auslandscode
str1 = FillUp(Auslandscode1, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'Zahlungsziel
str1 = FillUp(Zahlungsziel1, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'skonto %
str1 = FillUp(Skonto1, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'skonto tage
str1 = FillUp(Skonto2, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'mahncode
str1 = FillUp(Mahncode1, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'verkaufsgebiet
str1 = FillUp(Verkaufsgebiet1, 3, 1, "0")
line1 = line1 + str1
'MsgBox (str1)
'platzhalter " "x47
str1 = FillUp(" ", 47, 1, " ")
line1 = line1 + str1
'MsgBox (str1)
'stern
str1 = "*"
line1 = line1 + str1
'MsgBox (str1)
Print #filenumber, line1
End Sub
Sub PrintMitgliederBMDHeader(filenumber)
'DoCmd.OpenForm
Branche1 = " "
Auslandscode1 = "000"
Zahlungsziel1 = "000"
Skonto1 = "000"
Skonto2 = "000"
Mahncode1 = "000"
Verkaufsgebiet1 = "000"
DoCmd.Hourglass True
End Sub
Function FillUp(text1 As String, laenge1 As Long, left1 As Long, fillchar1 As String) As String
Dim str1 As String
str1 = text1
If Len(str1) > laenge1 Then
' it is too long
str1 = Left(str1, laenge1)
End If
While (Len(str1) < laenge1)
' it is still too short
If left1 Then
str1 = fillchar1 + str1
Else
str1 = str1 + fillchar1
End If
Wend
FillUp = str1
End Function