ronibooni
Goto Top

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

Content-Key: 302192

Url: https://administrator.de/contentid/302192

Printed on: April 25, 2024 at 10:04 o'clock

Mitglied: 114757
114757 Apr 18, 2016 at 13:26:07 (UTC)
Goto Top
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
Member: ronibooni
ronibooni Apr 18, 2016 at 14:03:55 (UTC)
Goto Top
Hallo Jodel32 und so,

erst mal vielen Dank für den Link. Es war schon mal
super interessant, im Code den Zugriff auf das Outlook Object zu sehen.
Nur lassen sich wahrscheinlich leider VB Makros unter InfoPath
nicht wirklich einsetzen, wie in der Entwicklungsumgebung im Word.
Wenn da jemand eine durchgängige Besipielzeile für den Weg
"Infopath -> Feld im Formular -> Variable aus Outlook -> Ausgabe ins
Feld von InfoPath" hätte, wäre das Super.

LG Ron face-wink
Mitglied: 114757
114757 Apr 18, 2016 updated at 14:13:02 (UTC)
Goto Top
Naja, dafür geht dort aber sogar VB.Net das kann das alles auch und noch viel mehr face-wink
Member: ronibooni
ronibooni Apr 18, 2016 at 14:15:09 (UTC)
Goto Top
Könntest Du ein passendes Beispiel schreiben? .-)
Mitglied: 114757
114757 Apr 18, 2016 updated at 14:18:39 (UTC)
Goto Top
Zitat von @ronibooni:

Könntest Du ein passendes Beispiel schreiben? .-)
Wenn du mir das zahlst, das ich jetzt erst mal Infopath wieder rauskramen muss face-wink gerne.
Member: ronibooni
ronibooni Apr 18, 2016 at 14:34:51 (UTC)
Goto Top
Lass mal gucken,

was würdest Du denn haben wollen. Wenn Du das wirklich machst,
sollten wir vielleicht mal telefonieren und besprechen, wie es werden soll.
Mitglied: 114757
114757 Apr 18, 2016 updated at 15:28:34 (UTC)
Goto Top
Zitat von @ronibooni:
was würdest Du denn haben wollen. Wenn Du das wirklich machst,
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:
  • 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)  
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
Member: ronibooni
ronibooni Apr 19, 2016 at 05:36:00 (UTC)
Goto Top
Mein Vorschlag: Lass uns mal telefonieren. Du könntest Dich
mit Teamviewer einwählen und ich zeige Dir, was ich tun möchte.
Dass Infopath dem Ende engegengeht weiß (leider).
Wenn ich Dir mein Projekt gezeigt habe, hast Du vielleicht auch
alternative Ideen dazu.
Im Prinzip bin ich meiste Zeit heute im Büro. 10:00 - 11:00 Uhr und
13:00 - 16:00 Uhr habe ich aber einen Kundentermin.
Tel.: 0157 78786995

Bis später! FG Ron
Member: ronibooni
ronibooni Apr 19, 2016 at 20:11:11 (UTC)
Goto Top
Hallo Jodel32,

habe ich jetzt was falsches geschrieben?

FG Ron
Member: ronibooni
ronibooni Apr 21, 2016 at 14:24:31 (UTC)
Goto Top
Das ist das Tragische,
man steht mitten in einer "Besprechung" und Angespochene
klinkt sich einfach kommentarlos aus.

Vielen Dank Jodel32!
Mitglied: 114757
114757 Apr 21, 2016 updated at 15:38:24 (UTC)
Goto Top
Sorry wenn ich nicht für alles und jenes sofort Zeit habe ... face-confused

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.