Outlook 2010 - Dropdown via OLEDB
Hallo Community,
ich möchte gerne im Outlook ein Formular haben, welches ein Dropdownmenü aufweist. Das Formular habe ich soweit fertig ,jetzt mangelt es am Dropdownmenü, das Menü soll möglichs die Werte nicht im Code stehen haben, sondern sich das auch einer Excel-Tabelle ziehen.
Kann mir da einer weiterhelfen?
Vielen Dank im voraus.
ich möchte gerne im Outlook ein Formular haben, welches ein Dropdownmenü aufweist. Das Formular habe ich soweit fertig ,jetzt mangelt es am Dropdownmenü, das Menü soll möglichs die Werte nicht im Code stehen haben, sondern sich das auch einer Excel-Tabelle ziehen.
Kann mir da einer weiterhelfen?
Vielen Dank im voraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 377142
Url: https://administrator.de/contentid/377142
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
vielleicht hilft dir das hier weiter:
https://www.mrexcel.com/forum/excel-questions/718965-vba-send-email-mult ...
Du muusst also deine Excel-Datei "öffnen", und mit dem .Range()-Attribut müsstest du dann deine Werte auswählen können.
Den Inhalt in eine Variable/ Array rein und dies dann in dein Dropdown-Inhalt...
So mal ganz grob logisch formuliert...
Gruß
em-pie
vielleicht hilft dir das hier weiter:
https://www.mrexcel.com/forum/excel-questions/718965-vba-send-email-mult ...
Du muusst also deine Excel-Datei "öffnen", und mit dem .Range()-Attribut müsstest du dann deine Werte auswählen können.
Den Inhalt in eine Variable/ Array rein und dies dann in dein Dropdown-Inhalt...
So mal ganz grob logisch formuliert...
Gruß
em-pie
Servus,
da gibt es ein paar Möglichkeiten, die erste via ADODB:
Hier anzupassen ist der Pfad zur Datendatei (im Beispiel gehe ich davon aus das die Daten in einem Sheet mit dem Namen Tabelle1 stehen und in der ersten Zeile die Überschriften für die Daten. Auslesen tue ich hier eine Spalte mit dem Namen Dropdowndata um damit das DropDownfeld zu füllen.
Ebenfalls eventuell anzupassen ist der Connectionstring für das Connection Object, diese kannst du hier bekommen und ausprobieren wenn das obige bei dir nicht funktioniert weil der Treiber eben fehlt:
https://www.connectionstrings.com/ace-oledb-12-0/
Zweite Methode (langsamer) ist das Abrufen der Daten über GetObject
Hier lese ich im Beispiel den dnamischen Bereich von A2:Ax aus Tabelle1 und fülle damit das Drop-Down-Feld.
So, damit solltest du jetzt eigentlich zurecht kommen.
Grüße Uwe
da gibt es ein paar Möglichkeiten, die erste via ADODB:
Sub Item_Open()
' Excel Datei
strFile = "D:\Pfad\Daten.xlsx"
' Name der Tabelle in der Exceldatei
strTableName = "Tabelle1"
' Datenobjekte erstellen
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
' Verbindung zum Excel Sheet herstellen
objConnection.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=" & strFile & "; HDR=Yes;"
' Recordset mit Daten aus der Tabelle füllen
objRecordset.Open "Select * FROM [" & strTableName & "$]", objConnection
' Combobox referenzieren (Name des Tabs und des Controls selbstverständlich anpassen)
set objCombo = Item.GetInspector.ModifiedFormPages("Nachricht").Controls("ComboBox1")
'Recordset durchlaufen
Do Until objRecordset.EOF
' Item der Combobox hinzufügen (Spaltenname anpassen)
objCombo.AddItem objRecordset.Fields.Item("Dropdowndata")
' zur nächsten Zeile des Recordsets
objRecordset.MoveNext
Loop
' Verbindungen trennen
objRecordset.Close
objConnection.Close
End Sub
Ebenfalls eventuell anzupassen ist der Connectionstring für das Connection Object, diese kannst du hier bekommen und ausprobieren wenn das obige bei dir nicht funktioniert weil der Treiber eben fehlt:
https://www.connectionstrings.com/ace-oledb-12-0/
Zweite Methode (langsamer) ist das Abrufen der Daten über GetObject
Sub Item_Open()
' Pfad zur Excel Datei
strFile = "D:\Pfad\Daten.xlsx"
' Combobox referenzieren (Name des Tabs und des Controls selbstverständlich anpassen)
set objCombo = Item.GetInspector.ModifiedFormPages("Nachricht").Controls("ComboBox1")
' Excel-Worksheet auf "Tabelle1" öffnen
With GetObject(strFile).Worksheets("Tabelle1")
' und Bereich A2:Ax (x = letzte gefüllte Zelle in Spalte A) zur Combobox hinzufügen
for each cell in .Range("A2:A" & .Cells(.Rows.Count, "A").End(-4162).Row)
objCombo.AddItem cell.Value
Next
' Workbook object schließen
.Parent.Close
End with
End Sub
So, damit solltest du jetzt eigentlich zurecht kommen.
Grüße Uwe