Daten aus Outlook für InfoPath Formulare abrufen und eintragen
Hallo Alle zusammen,
Infopath 2013 nutze ich für die Erstellung und Nutzung von Protokollen.
Um das Ausfüllen der Formulare zu beschleunigen, würde ich gern vorhandene
Kontaktdaten aus MS Outlook 2013 nutzen. In Formularen aus Word ist das ohne
Probleme möglich. Vielleicht kann mir Jemand auch mitteilen, wie man generell
von externer Seite auf die Daten - Variablen zugreifen kann. Mir fehlen da Infos,
wie grundsätzlich der Zugriff auf Quellen aus Outlook möglich ist.
Schon mal im Voraus Vielen Dank für die Infos.
FG Ron
Infopath 2013 nutze ich für die Erstellung und Nutzung von Protokollen.
Um das Ausfüllen der Formulare zu beschleunigen, würde ich gern vorhandene
Kontaktdaten aus MS Outlook 2013 nutzen. In Formularen aus Word ist das ohne
Probleme möglich. Vielleicht kann mir Jemand auch mitteilen, wie man generell
von externer Seite auf die Daten - Variablen zugreifen kann. Mir fehlen da Infos,
wie grundsätzlich der Zugriff auf Quellen aus Outlook möglich ist.
Schon mal im Voraus Vielen Dank für die Infos.
FG Ron
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 302192
Url: https://administrator.de/contentid/302192
Ausgedruckt am: 23.11.2024 um 10:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
bitte keine Doppelposts!
Guckst du hier wie man Kontakte aus Outlook abrufen kann:
Übergabe von Wert eines benutzdefinierten Feld von Outlook an Word
Gruß jodel32
bitte keine Doppelposts!
Guckst du hier wie man Kontakte aus Outlook abrufen kann:
Übergabe von Wert eines benutzdefinierten Feld von Outlook an Word
Gruß jodel32
Naja, dafür geht dort aber sogar VB.Net das kann das alles auch und noch viel mehr
Wenn du mir das zahlst, das ich jetzt erst mal Infopath wieder rauskramen muss gerne.
Kommt drauf an was du genau machen willst
Hier mal ein kleines Beispiel zum Suchen und auflisten von Kontakten:
Es gibt für das Hinzufügen dieses Codes diverse Einstellungen die getätigt werden müssen damit er funktioniert, als da wären:
)
Die XPath-Feldnamen für die Felder müssen natürlich an eigene Bedürfnisse angepasst werden.
Du siehst das erfordert einiges an Grundwissen um das ans Laufen zu bringen.
Optimaler wäre es halt wenn die Kontakte auf einem Sharepoint-Server liegen würden denn dafür gibt es native Controls. Aber InfoPath ist sowieso irgendwann Geschichte wenn alles in den Browser gewandert ist.
Gruß jodel32
Hier mal ein kleines Beispiel zum Suchen und auflisten von Kontakten:
Es gibt für das Hinzufügen dieses Codes diverse Einstellungen die getätigt werden müssen damit er funktioniert, als da wären:
- Datei -> FormularOptionen -> Sicherheit und Vertrauensstellung -> "Voll vertrauenswürdig" (Alternativ signiert man den Code)
- Dann muss im Project noch ein Verweis zum Outlook-Interop-Assembly hinzugefügt werden, das Windows Forms Assembly habe ich nur wegen den Message-Boxes zur Demo hinzugefügt: **Project -> Verweis hinzufügen -> TAB .NET -> "Microsoft.Office.Interop.Outlook" und "System.Windows.Forms"
- Dann im Kopf des Codes noch zusätzlich zwei Imports hinzufügen:
Imports System.Windows.Forms
Imports Microsoft.Office.Interop.Outlook
Die XPath-Feldnamen für die Felder müssen natürlich an eigene Bedürfnisse angepasst werden.
Du siehst das erfordert einiges an Grundwissen um das ans Laufen zu bringen.
' Application Object (Verweis zum Assembly hinzufügen )
Dim olApp As New Microsoft.Office.Interop.Outlook.Application
' Default-Kontakteordner in Outlook ansprechen
Dim folderContact As Folder = olApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderContacts)
' Wert des Feldes im Formular in dem der Suchbegriff (Suche nach Nachname) eingegeben wird
Dim searchValue As String = MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:fieldSearch", NamespaceManager).Value
' Suche in den Kontakten nach Personen mit dem angegebenen Nachnamen
Dim foundItems As Items = folderContact.Items.Restrict("[LASTNAME] = '" & searchValue & "'")
' Wurde mindestens ein Kontakt gefunden
If Not foundItems.GetFirst() Is Nothing Then
'Felder im Formular angeben die Werte des Kontakts erhalten sollen
Dim fldVorname As XPathNavigator = MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:fieldVorname", NamespaceManager)
Dim fldNachname As XPathNavigator = MainDataSource.CreateNavigator().SelectSingleNode("/my:meineFelder/my:fieldNachname", NamespaceManager)
' Für jeden gefundenen Kontakt setze die Informationen in die Formularfelder
For Each itm As ContactItem In foundItems
With itm
fldVorname.SetValue(.FirstName)
fldNachname.SetValue(.LastName)
'Demo MessageBox anzeigen
MessageBox.Show("Kontakt '" & .FullName & "' wurde gefunden.", "Suche", MessageBoxButtons.OK, MessageBoxIcon.Information)
End With
Next
Else
' Es wurde kein Kontakt gefunden, gebe Meldung aus.
MessageBox.Show("Leider keinen Kontakt gefunden der dem Suchbegriff entspricht.", "Suche", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Gruß jodel32
Sorry wenn ich nicht für alles und jenes sofort Zeit habe ...
Die Anfragen stauen sich halt in meiner Mailbox, da musst du schon etwas Geduld aufbringen.
Was wäre dir die Umsetzung denn maximal wert? So kann ich schon mal ausloten mit wem ich das Vergnügen habe. Es kommen hier nämlich diverse Anfragen und kaum einer möchte vernünftig Löhnen, ist hier zum Leidwesen der Kostenloskultur oft so.
Die Anfragen stauen sich halt in meiner Mailbox, da musst du schon etwas Geduld aufbringen.
Was wäre dir die Umsetzung denn maximal wert? So kann ich schon mal ausloten mit wem ich das Vergnügen habe. Es kommen hier nämlich diverse Anfragen und kaum einer möchte vernünftig Löhnen, ist hier zum Leidwesen der Kostenloskultur oft so.