2016-07-29 13 views
0

Ich versuche, eine Outlook-Nachricht basierend auf Informationen in meinem Formular anzuzeigen.Zugriff auf VBA mit Outlook - ".To" -Zeile zeigt Primärschlüssel anstelle von E-Mail-Informationen an

Die Zeile ".To" zeigt "Me.Email" an, die auf ein Kombinationsfeld im Formular verweist.

Ich versuche, E-Mail-Adressen hinzuzufügen, die in eine separate Tabelle "Firma" eingegeben werden. Das Kombinationsfeld zeigt E-Mails an, aber die Outlook-Nachricht "An" enthält den Primärschlüssel. Wie kann ich auf die E-Mail und nicht auf den Primärschlüssel verweisen?

Private Sub Distribute_Click() 

Dim oApp   As Object 
Dim objOutlookMsg As Object 

Set OutApp = CreateObject("Outlook.application") 'Set Outlook application 

Set objOutlookMsg = OutApp.CreateItem(0) 

With objOutlookMsg 
    .To = Me.Email 'Only pulls the Primary Key ID number instead of e-mails? 
    .Subject = Me.Name & " - Approval Letter" 
    .Body = "Generic Message" 
    .Display 
End With 

Set oMail = Nothing 
Set oApp = Nothing 

End Sub 

Antwort

0

Wenn Sie den Primärschlüssel in dieser Combobox nicht brauchen, entfernen Sie die Spalte von der Quelle Abfrage, und passen Sie die Combobox Eigenschaften entsprechend (Anzahl der Spalten, gebundene Spalte, ...)

Oder setzen Sie die gebundene Spalte auf die Spalte mit der E-Mail-Adresse.

Oder verwenden

.To = Me.Email.Columns(1) ' guessing that Columns(0) is the ID 
+0

Ja! Das ist fast, was ich gesucht habe! Aber jetzt bekomme ich einen Fehler. .To = Me.Email.Column (1) Spalte (0) ist die ID und Spalte (1) ist der Firmenname, der in der Outlook-Nachricht funktioniert. Aber wenn ich Spalte (2) (E-Mail-Adressen) wähle bekomme ich Laufzeitfehler '-2147352571 (80020005)': Type Mismatch? – sploosh87

+0

Überprüfen Sie den Wert von .Column (2) mit dem einfachen Debug.Print oder legen Sie einen Haltepunkt in der Zeile und bewegen Sie den Mauszeiger über die Variable, um zu sehen, was es eigentlich ist. – dbmitch