"Anrede" und "Briefanrede" automatisch generieren (AGGenderCheck Modul)

~ 0 min
08.11.2023 16:15

Problem:
Bei unvollständigen Daten kann es vorkommen, dass die Anrede (Frau, Herr) und Briefanrede ("Sehr geehrte XY,") nicht vorhanden sind.
Dies kann in der Regel nur durch eine manuelle Bearbeitung aufbereitet werden.

Lösung:
Mit dem AGGenderCheck Modul kann die Aufbereitung automatisiert durch einen Makro umgesetzt werden z.B. durch einen Hintergrundprozess, Button oder Makro beim Laden.

Installation:
Das Modul gehört zur Auslieferung von AG-VIP, daher muss außer dem Makro nichts zusätzlich installiert werden. Das Feld "Gender" muss angelegt werden - und das als Kennzeichenfeld mit den Werten "M" und "W".

Verwendung:
Öffnen Sie den Makro-Editor an beliebiger Stelle (Ansicht, Button, beim Verlassen eines Felds...) und fügen Sie den Code ein.

Ablauf:
Das Makro prüft, ob ein Titel vorhanden ist, bestimmt die Anrede (Herr oder Frau) basierend auf dem Geschlecht und erstellt die Anrede-Zeichenkette.
Wenn die Gender-Prüfung aktiviert ist, überprüft das Makro den Vornamen in einer Datenbank, aktualisiert die Anrede und das Geschlecht basierend auf dem Ergebnis.
Die Option "DisableGenderCheck" ermöglicht die Deaktivierung der Gender-Prüfung, falls gewünscht.

Makro:

' Zweck: Bestimme Anrede und Briefanrede durch Geschlecht und Vornamen
' Autor: Marko
' Datum: 06.11.2023
' Notiz: Das Makro besteht aus zwei Teilen. 
'
'        Der erste Teil befüllt das Feld "Anrede" (NameSalutation) mit "Herr" oder "Frau" abhängig davon, was in dem Kennzeichenfeld "Gender" ausgewählt wurde.
'	 Der zweite Teil nutzt das GenderCheck Modul und vergleicht den Vornamen mit dem Inhalt einer Namensdatenbank.
'
'	 Bsp.: Feld "NameFirst" ist "Michael" - das Makro schaut in die Datenbank und sieht, dass der Name "Michael" fast immer dem Geschlecht "M" gehört. Dementsprechend werden die
'	 Felder gefüllt und die Anreden generiert.

Sub GenAnrede() ' ---------------------------------------------- ' Um die Anredegenerierung durch Vornamen auszuschalten, setzen Sie die Variable auf True DisableGenderCheck = False ' ---------------------------------------------- 'MAKRO 1 (GENDERCHECK) 'Wenn es einen Titel gibt ("Dr." usw.) If ActiveAddress.Fields("NameTitle").Value <> "" Then Select Case ActiveAddress.Fields("Gender").Value 'Männlich' Case "M" ActiveAddress.Fields("NameSalutation").Value = "Herr" ActiveAddress.Fields("Salutation").Value = "Sehr geehrter Herr " & ActiveAddress.Fields("NameTitle").Value & " " & ActiveAddress.Fields("NameLast").Value & "," 'Weiblich' Case "W" ActiveAddress.Fields("NameSalutation").Value = "Frau" ActiveAddress.Fields("Salutation").Value = "Sehr geehrte Frau " & ActiveAddress.Fields("NameTitle").Value & " " & ActiveAddress.Fields("NameLast").Value & "," End Select 'Kein Titel Else Select Case ActiveAddress.Fields("Gender").Value 'Männlich' Case "M" ActiveAddress.Fields("NameSalutation").Value = "Herr" ActiveAddress.Fields("Salutation").Value = "Sehr geehrter Herr " & ActiveAddress.Fields("NameLast").Value & "," 'Weiblich' Case "W" ActiveAddress.Fields("NameSalutation").Value = "Frau" ActiveAddress.Fields("Salutation").Value = "Sehr geehrte Frau " & ActiveAddress.Fields("NameLast").Value & "," End Select End If 'MAKRO 2 (GENDERCHECK) If DisableGenderCheck = False And ActiveRecord.Fields("NameFirst").Value <> "" Then ' Falls kein Länderkürzel vorhanden, wird als Standard "DEU" verwendet Dim strCountry If ActiveRecord.Fields("Country").Value <> "" Then strCountry = ActiveRecord.Fields("Country").Value Else strCountry = "DEU" End If Dim oGenderCheck ' Erzeugen des AGGenderCheck Objektes Set oGenderCheck = CreateObject("AGGenderCheck.Checker") ' Für die Bearbeitung muss die Adresse gesperrt werden (Schreibzugriff) If ActiveRecord.Lock Then Dim strResult ' Aufruf der GetGender Funktion um die Anrede zu ermitteln strResult = oGenderCheck.GetGender(CStr(ActiveRecord.Fields("NameFirst").Value), CStr(strCountry)) Select Case strResult Case "W", "w" ' weiblicher Name If ActiveRecord.Fields("NameSalutation").Value <> "Frau" Then ActiveRecord.Fields("NameSalutation").Value = "Frau" If ActiveAddress.Fields("NameTitle").Value <> "" Then ActiveAddress.Fields("Salutation").Value = "Sehr geehrte Frau " & ActiveAddress.Fields("NameTitle").Value & " " & ActiveAddress.Fields("NameLast").Value & "," Else ActiveAddress.Fields("Salutation").Value = "Sehr geehrte Frau " & ActiveAddress.Fields("NameLast").Value & "," End If ActiveRecord.Fields("Gender").Value = "W" End If Case "M", "m" ' männlicher Name If ActiveRecord.Fields("NameSalutation").Value <> "Herr" Then ActiveRecord.Fields("NameSalutation").Value = "Herr" If ActiveAddress.Fields("NameTitle").Value <> "" Then ActiveAddress.Fields("Salutation").Value = "Sehr geehrter Herr " & ActiveAddress.Fields("NameTitle").Value & " " & ActiveAddress.Fields("NameLast").Value & "," Else ActiveAddress.Fields("Salutation").Value = "Sehr geehrter Herr " & ActiveAddress.Fields("NameLast").Value & "," End If ActiveRecord.Fields("Gender").Value = "M" End If End Select End If Set oGenderCheck = Nothing End If End Sub GenAnrede()
Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich