Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: OrionVII am Mai 21, 2026, 12:06:44

Titel: Prüfung ob Email-Adresse vorhanden
Beitrag von: OrionVII am Mai 21, 2026, 12:06:44
Hallo zusammen,

in meinem Rechnungsprogramm kann ich nun mit der Hilfe des Forums Rechnungen inkl. der Rechnung als PDF versenden. Nun ist es aber so, dass nicht alle Kunden eine Mailadresse angegeben haben, lieber die Post bemühen.


Die Mail wird über eine Schaltfläche am Seitenende des Berichts abgeschickt. Ich will also prüfen, ob im Berichtsfeld KEmail (Tabellenformat Link) eine Adresse steht. Wenn nicht, soll die Schlatfläche unsichtbar sein.

Ich dachte an beim Laden des Berichts an: Wenn me.kemail = "" dann btnMailversand. visible = false

Funktioniert natürlich nicht, es passiert gar nichts.
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: Bitsqueezer am Mai 21, 2026, 12:17:23
Hallo,

das mußt Du in VBA machen, in Form_Load, und dann so:
Me.btnMailversand.Enabled = (Nz(me.kemail,"") = "")
Passiert aber dann nur einmal beim Laden.
Wenn Du in Datensätzen blätterst, dann besser in Form_Current, dann wird es bei jedem Datensatz ein- oder ausgeschaltet.

Du kannst auch Visible nehmen, es ist aber besser, wenn Buttons permanent sichtbar sind und nur abgeschaltet, wenn sie nicht geklickt werden können.

Gruß

Christian
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: Knobbi38 am Mai 21, 2026, 16:00:21
Auf einen Bericht gehören keine Schaltflächen! Die Prüfung auf eine vorhandene Mail-Adresse sollte vor dem Öffnen des Berichts erfolgen.

Alleine das Vorhandensein einer Mailadresse ist aber kein hinreichendes Kriterium, sondern es sollte ein separates Feld dafür angelegt werden, um allen Eventualitäten vorzubeugen.

Knobbi38
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: jens05 am Mai 21, 2026, 18:20:32
Zitat von: Bitsqueezer am Mai 21, 2026, 12:17:23Hallo,

das mußt Du in VBA machen, in Form_Load, und dann so:
Me.btnMailversand.Enabled = (Nz(me.kemail,"") = "")
Passiert aber dann nur einmal beim Laden.
Wenn Du in Datensätzen blätterst, dann besser in Form_Current, dann wird es bei jedem Datensatz ein- oder ausgeschaltet.

Du kannst auch Visible nehmen, es ist aber besser, wenn Buttons permanent sichtbar sind und nur abgeschaltet, wenn sie nicht geklickt werden können.

Gruß

Christian
@christian, sollte die Logik nicht anders sein?
    Me.btnMailversand.Enabled = (Nz(me.kemail,"") > "")Wenn gefüllt, dann aktiviert bzw. sichtbar?
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: Bitsqueezer am Mai 21, 2026, 20:48:00
Hallo Jens,

da hast Du allerdings recht... :)
Ich schreibe das häufig falsch rum... :D

Die lesbarere Variante, die ich meist dann benutze, sieht so aus:
Me.btnMailversand.Enabled = Not (Nz(me.kemail,"") = "")Damit es nicht aussieht wie eine doppelte Gleichung. Ist aber nur Kosmetik.

Gruß

Christian
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: OrionVII am Mai 22, 2026, 19:26:09
Zitat von: Knobbi38 am Mai 21, 2026, 16:00:21Auf einen Bericht gehören keine Schaltflächen! Die Prüfung auf eine vorhandene Mail-Adresse sollte vor dem Öffnen des Berichts erfolgen.

Alleine das Vorhandensein einer Mailadresse ist aber kein hinreichendes Kriterium, sondern es sollte ein separates Feld dafür angelegt werden, um allen Eventualitäten vorzubeugen.

Knobbi38

Die Schaltflächen werden nach meiner Erfahrung bei einem Mailversand bzw. Speicherung als PDF von Access ausgeblendet. Der Bericht soll an dieser Stelle erst mal als Vorschau dienen.

Ich habe auch ein Stück Code gefunden, das prüft, ob die Mailadresse korrekt ist.
Titel: Re: Prüfung ob Email-Adresse vorhanden
Beitrag von: Knobbi38 am Mai 22, 2026, 22:40:14
Die Seitenansicht ist vergleichbar mit einem Ausdruck auf Papier, deshalb werden Buttons auch nicht dargestellt. Der Bericht muss auch vorher nicht als PDF Datei gespeichert werden, sondern kann direkt mit SendObject als PDF an eine Mail angehängt werden.
Hierfür bietet sich ein angepasstes Ribbon für die Seitenansicht an, damit die DoCmd.SendObject Methode mit entsprechenden Parametern aus der Seitenansicht aufgerufen werden kann.

Knobbi38