2016-05-03 8 views
2

Zum ersten Mal Poster ... Ich bin ziemlich neu in VBA und derzeit in der Magping/Pinching und Modifikationsstufe, aber ich hoffe, dass dies nicht lange dauern wird.Senden von E-Mail in Zugriff über Abfrage und VBA

Ich spiele gerade in Access herum und versuche, eine Datenbank zu entwickeln, in der Lehrer eine Anwendung protokollieren, wenn sie eine Lektion benötigen, um abgedeckt zu werden (idealerweise würde ich dies in SQL machen, aber ich kann das momentan nicht).

Die Datenbank und Form in Access sind so ziemlich da denke ich, aber ich würde die Datenbank gerne einen bestimmten Mitarbeiter zu benachrichtigen, wenn ein Antrag gestellt wird. Die Auswahl des Mitarbeiters erfolgt durch Auswahl aus einer Combobox, die durch eine Abfrage gesteuert wird. Der Grund für die Abfrage ist, dass nur bestimmte Mitarbeiter diese Benachrichtigung erhalten sollen - im Wesentlichen diejenigen, die andere Mitarbeiter leiten.

Sobald das Mitglied des Personals ausgewählt wurde, mag ich im Wesentlichen die Person, die den Antrag stellt, einen Knopf klicken, die dann eine E-Mail an der Person in der Combobox ausgewählt ausgelöst. Ich habe versucht, etwas in VBA zusammenzusetzen, aber ich bekomme ein Flackern von Outlook, etwas zu tun und dann nichts.

Das ist, was ich bisher habe, mit dem DLookup der Mitarbeiter in der Combobox ausgewählt unter Verwendung die E-Mail-Adresse in der Personal-Tabelle dann zu finden:

Private Sub Command788_Click() 
Dim Email_Note As Variant 
Email_Note = DLookup("Email", "Staff", Forms![Cover Application Form]!Combo767) 
Dim olLook As Outlook.Application 
Dim olNewEmail As Outlook.CreateItem 
Dim StrContactEmail As String 
Set olLook = New Outlook.Application 
Set olNewEmail = olLook.CreateItem(olMailItem) 
strEmailSubject = "Application for Cover: Line Manager Notification" 
strEmailText = "Something in here..." 
StrContactEmail = "Email_Note" 
olNewEmail.Display 
End Sub 
+2

olNewEmail.Send – serakfalcon

+0

Danke - ich werde diese Änderung vornehmen. Ich klicke jetzt auf die Befehlsschaltfläche und erhalte keine Antwort. Klar habe ich gestern getan. Was denkst du mit dem Rest? –

+0

Ich glaube, Sie brauchen einen Haltepunkt im Code zu setzen und prüfen olLook – serakfalcon

Antwort

3

Sie sollten sicherstellen, dass die Outlook-Bibliothek verwiesen wird in der Registerkarte Werkzeuge des VBA-Editors. Es sieht auch so aus, als hätten Sie Strings für den Body und das Subject erstellt, aber nicht deklariert. Anstatt sie als String-Variablen zu deklarieren, setzen Sie einfach die outlook. body usw. auf den entsprechenden String, wie ich unten gezeigt habe.

Sie brauchen nicht email_note mit Anführungszeichen zu kapseln, wenn Sie es als eine Variable deklariert haben. Ich nahm an, dass das eine E-Mail-Adresse war?

Die strContactEmail nicht mehr benötigt wird, sehe ich nicht, wo es verwendet wird.

Private Sub Command788_Click() 
Dim Email_Note As Variant 
Email_Note = DLookup("Email", "Staff", Forms![Cover Application Form]!Combo767) 
Dim olLook As Outlook.Application 
Dim olNewEmail As Outlook.mailItem 
'Dim StrContactEmail As String 
Set olLook = New Outlook.Application 
Set olNewEmail = olLook.CreateItem(olMailItem) 
    olNewEmail.Subject="Application for Cover: Line Manager Notification" 
    olNewEmail.Body = "Something in here..." 
    olNewEmail.To = email_note 
    olNewEmail.Send 
Set olNewEmail = Nothing 
Set olLook = Nothing 
End Sub 
+0

Oooh okay - ich werde das jetzt gut anschauen und euch wissen lassen. Vielen Dank! –

+0

Und ja - Email_Note ist die E-Mail-Adresse, die vom DLookup zurückgegeben wird. Oder das ist sowieso die Idee. –

+0

"Dim olNewEmail als Outlook.CreateItem" sollte wiederum "Outlook.MailItem" lauten. :) – Andre

Verwandte Themen