@ErfinderDesRades: Ich habe jetzt folgendes umgesetzt:
Das funktioniert soweit auch. Das jeweilige Form, in dem Fall identisch wird aufgerufen und in der Messagebox (dient nur zum Testen) erscheint der Pfad zur Vorlage.
Allerdings erhalte ich eine Fehlermeldung "Der Vorgang konnte nicht abgeschlossen werden. Mindestens ein Parameterwert ist ungültig"! Die kommt vom Catch Befehl am Ende der Form.
Ich habe mir einen Haltepunkt gesetzt und in Einzelschritten ein Debugging vorgenommen. Was mir aufgefallen ist, er scheint das "Try" nicht zu durchlaufen und somit öffnet er auch kein Mailtemplate.
Habe ich an irgendeiner Stelle was vergessen?
Hier der Code der Form.
VB.NET-Quellcode
- Public Class Test_Ribbon
- Public Pfad_Vorlage As String
- Private Sub AnyButton_Click(sender As Object, e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles btn_Test_1.Click, btn_Test_2.Click
- Dim frm As Form
- Select Case True
- Case sender Is btn_Test_1 : frm = New frm_Test1()
- Pfad_Vorlage = My.Settings.TextBox_Vorlage1
- msgbox(Pfad_Vorlage)
- Case sender Is btn_Test_2 : frm = New frm_Test1()
- Pfad_Vorlage = My.Settings.TextBox_Vorlage2
- msgbox(Pfad_Vorlage)
- Case Else : Throw New InvalidOperationException("unknown Ribbon-Button clicked")
- End Select
- frm.ShowDialog()
- End Sub
Das funktioniert soweit auch. Das jeweilige Form, in dem Fall identisch wird aufgerufen und in der Messagebox (dient nur zum Testen) erscheint der Pfad zur Vorlage.
Allerdings erhalte ich eine Fehlermeldung "Der Vorgang konnte nicht abgeschlossen werden. Mindestens ein Parameterwert ist ungültig"! Die kommt vom Catch Befehl am Ende der Form.
Ich habe mir einen Haltepunkt gesetzt und in Einzelschritten ein Debugging vorgenommen. Was mir aufgefallen ist, er scheint das "Try" nicht zu durchlaufen und somit öffnet er auch kein Mailtemplate.
Habe ich an irgendeiner Stelle was vergessen?
Hier der Code der Form.
VB.NET-Quellcode
- Imports System.Data
- Imports System.Data.SqlClient
- Imports System.Windows.Forms
- Public Class frm_Test1
- Public Property Pfad_Vorlage As String
- Private Sub btn_DBAbfrage_Click(sender As Object, e As EventArgs) Handles btn_DBAbfrage.Click
- ' Quellcode nicht dargestellt, funktioniert einwandfrei dient zur Abfrage der Datenbank und füllen der Textmarken in der Email-Vorlage.
- End Sub
- Private Sub Btn_close_Click(sender As Object, e As EventArgs) Handles btn_close.Click
- Close()
- End Sub
- Private Sub Btn_Vorlage_Click(sender As Object, e As EventArgs) Handles btn_Vorlage.Click
- Timer1.Start()
- Close()
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- Timer1.Stop()
- Dim ThisOutlookSession As Outlook.Application = New Outlook.Application
- Dim NS As Outlook.NameSpace = ThisOutlookSession.Session
- Dim myOlApp As Outlook.Application
- Dim myOlExp As Outlook.Explorer
- Dim myOlSel As Outlook.Selection
- Dim moft As Outlook.Application
- Dim mMail As Outlook.MailItem
- Dim strbody As String
- Dim objItem As Object
- Dim Anrede As String
- moft = CreateObject("Outlook.Application")
- Try
- For Each row As DataGridViewRow In DGV_Datenbankabfrage.Rows
- Dim isSelected As Boolean = Convert.ToBoolean(row.Cells("checkBoxColumn").Value)
- If isSelected Then
- mMail = moft.CreateItemFromTemplate(Pfad_Vorlage)
- mMail.Display()
- mMail.SentOnBehalfOfName = "xxx@xxx.xxx"
- objItem = ThisOutlookSession.ActiveInspector.CurrentItem()
- myOlApp = ThisOutlookSession.Application
- myOlExp = myOlApp.ActiveExplorer
- myOlSel = myOlExp.Selection
- myOlApp.GetNamespace("MAPI").Logon()
- ' Übergabe der E-Mail Adresse
- mMail.To = row.Cells(7).Value.ToString()
- ' Übergabe und prüfung der Anrede
- If row.Cells(34).Value.ToString() = "Herrn" Then
- Anrede = "Herr"
- Else Anrede = "Frau"
- End If
- ' Erstellen der Betreffzeile
- objItem.subject = row.Cells(148).Value.ToString() & " " & "-" & " " & objItem.Subject & row.Cells(35).Value.ToString() & ", " & row.Cells(36).Value.ToString()
- ' Ersetzen der Textmarken Anrede und Nachname
- strbody = mMail.HTMLBody
- strbody = Replace(strbody, "%Anrede%", Anrede)
- strbody = Replace(strbody, "%Nachname%", row.Cells(35).Value.ToString())
- 'Ersetzung von weiteren Textmarken...
- mMail.HTMLBody = strbody
- End If
- Next
- Catch ex As System.Exception
- MsgBox(ex.Message)
- End Try
- End Sub
- End Class
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MK_CGN“ ()