Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Formular mit Mail-Weiterleitung

Begonnen von mile85, Dezember 10, 2015, 16:55:25

⏪ vorheriges - nächstes ⏩

mile85

Guten Abend

Ich habe eine Datenbank erstellt, die für die Auftragserfassung dient. Die wird über einen Formular übermittelt.
Darin befinden sich diverse Felder ( Name des Mitarbeiters, Stufe, Abteilung, Auftrag, Bemerkung etc.) und ein Aktionsbutton zum speichern. Ich würde gerne beim drücken des Aktionsbuttons " Speichern" eine Email-Weiterleitung zufügen. Die soll dann automatisch, nachdem der Auftrag gespeichert worden ist, an den betreffenden Mitarbeiter per E-Mail gesendet werden.

Ich habe schon versucht ein Makro zu erstellen  beim Ereignis " beim klicken". Jedoch mit ich da durch an eine fixe Email gebunden, oder ich aktivieren die Bearbeitung und muss die Email Adresse danach manuell eingeben. Dies ist aber dann zu umständlich.
Am liebsten soll das Email direkt nach dem Speichern an den eingegebenen Mitarbeiter weitergeitet werden.

ich wär euch sehr um eure Hilfe Dankbar

Grüsse Miro

Hondo

Hallo,
das geht entweder per Outlook-Automatisation oder per Winsock.
Sieh mal hier: http://www.access-o-mania.de/forum/index.php?topic=20744.msg116710#msg116710

Gruß Andreas

MaggieMay

Hallo Miro,

deine Problembeschreibung ist ziemlich schwer verständlich und außerdem fehlen einige Details.

Welche Email willst du weiterleiten? Oder willst du einfach nur eine Email versenden? Welchen Inhalt soll sie haben? Woher nimmst du die Email-Adresse?

Im einfachsten Fall geht das mit der SendObject-Methode, schau dir mal die Access-Hilfe dazu an.
Freundliche Grüße
MaggieMay

mile85

@MaggieMay

Hallo,

Ich möchte den ausgefüllten Formular weiterleiten als PDF. Die Email Adresse nehme ich aus der Mitarbeiterliste vom den Mitarbeiter der den Auftrag bekommt.

MaggieMay

Ok, und hast du dich in der Zwischenzeit schon mal mit der SendObject-Methode beschäftigt?
Die macht doch ganz genau das was du vorhast.
Freundliche Grüße
MaggieMay

mile85

@MaggieMay

Ja ich habe mich mit der SendObject-Methode beschäftigt. Leider macht es eben nicht genau das was ich vorhabe oder ich weiss nicht wie ich es verwenden soll.
Noch einmal die Problemstellung
Ich habe ein Eingabeformular mit folgenden Felder:
Name, Vorname, Abteilung, Bemerkung;
Einen Button: Senden;
Wenn ich nun den Namen im Eingabeformular eingebe erscheint automatisch Vorname, Abteilung.
Ich möchte nun beim Feld: Bemerkung; etwas eintippen und dann auf Senden drücken. Dabei soll die email automatisch an den richtigen Empfänger gehen.
Ähnlich wie bei einem IT-Support ticket

Ich hoffe das es so etwas verständlicher ist.

MaggieMay

Hi,

wer ist denn der "richtige" Empfänger, woher soll der genommen werden? Und welchen Inhalt soll die Email haben?

Du könntest auch deinen Versuch mal herzeigen (VBA-Code) und beschreiben was genau dabei herausgekommen ist bzw. was dir am Ergebnis nicht gefällt.
Freundliche Grüße
MaggieMay

mile85

Habe dir so eine testdb hochgeladen:

Im Formular wird nur der "Mitarbeiter Name Vorname" eingegeben. "Mitarbeiter Stufe", Mitarbeiter Bereich" und "MA_Mail" werden dann aus der MitarbeiterListe entnommen. "Auftrag" und "Bemerkung" werden von mir ausgefüllt.

Nach dem drücken auf "Speichern Button" wird 1. der Datensatz gespeichert  und 2. wird eine E-Mail versendet.
Empfänger = aus der "MA_Mail" >>>>wird aus dem eingegebenen "Mitarbeiter Name Vorname" entnommen. Jeder Mitarbeiter hat eine eigene E-Mail.

Mein Problem mit SendObject ist, dass es an eine fixe E-Mail gebunden ist bzw. ich muss im Code oder Makro eine eingeben.
Dabei soll er die E-Mail aus den aktuellen Formular aus "MA_Mail" nehmen, sprich von den im Formular eingegebenen Mitarbeiter.

http://s000.tinyupload.com/index.php?file_id=73785388944796083149

MaggieMay

Zitatwird 1. der Datensatz gespeichert  und 2. wird eine E-Mail versendet.
Empfänger = aus der "MA_Mail" >>>>wird aus dem eingegebenen "Mitarbeiter Name Vorname" entnommen.

Wenn das so wäre, könnte man sich den Code in deiner Beispiel-DB anschauen und dir sagen was daran falsch ist. Allerdings findet man dort keinen derartigen Versuch. :-(
Also noch einmal die Frage: Wie soll die Mail aussehen, welcher Betreff, Text, etc. soll enthalten sein?

Du kannst beim Einsatz der SendObjects-Methode Variablen bzw. Formularfelder verwenden, nirgendwo steht, dass das Konstanten sein sollen. Von Makros solltest du Abstand nehmen, darüber lässt sich schlecht kommunizieren und damit kennt sich auch niemand wirklich gut aus, möchte ich mal behaupten.
Freundliche Grüße
MaggieMay

mile85

Hallo,

Ich habe den Code wieder entfernt. War ja nur der Standardcode bzw:
"SendObject(ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile)"

Wie baue ich den Variable ein beim "Empfänger"?. Kenne mich da leider noch nicht aus.

Über das aussehen der Mail, mich würden 2 Varianten interessieren.
- Variante 1: Standard Mail mit einem festgelegten text > Betreff: Auftrag, Text: fixer text z.b. "Ihnen wurde ein neuer Auftrag zugeteilt"  und im Anhang dann eine PDF Datei vom dem ausgefüllten Formular

-Variante 2: Betreff: Neuer Auftrag, Text: Daten aus "Mitarbeiter Name Vorname" + Daten aus "Auftrag" und Daten aus "Bemerkung"

MaggieMay

Nur damit du mal ein Beispiel siehst, so könnte der VBA-Code des Klickereignisses zu deinem Button aussehen:

Private Sub cmdSaveNew_Click()
    ' Eingaben/Änderungen speichern
    If Me.Dirty Then Me.Dirty = False
    ' Email vorbereiten und anzeigen
    DoCmd.SendObject acSendForm, Me.Name, acFormatPDF, Me!MA_Mail, , , "Auftrag: " & Me!Auftrag, "Ihnen wurde ein neuer Auftrag zugeteilt", True
End Sub


Evtl. hilft dir das ja schon weiter.
Freundliche Grüße
MaggieMay

mile85

Vielen Dank!Das hilft mir auf jeden fall weiter. Ich hatte die Gänsefüsschen wohl vergessen gehabt :(.

Eine bitte hätte ich dennoch trotzdem :).

Aktuell funktioniert ja das speichern und die Mail Funktion super. jetzt wünschte ich mir dass nach dem Speichern/Mail Prozess das Formular geschlossen wird, oder zumindest ein neuer Datensatz aufgerufen wird.

mile85

Hat sich erledigt habe DoCmd.Close  eingebaut am Schluss. Nochmals Vielen Dank für deine Mühe.