filedialog unter office2000
19.07.2004 09:41:10
joel
ich habe unter office XP folgenden code geschrieben. leider funtzt das ganze unter office 2000 (win2000, sp4) nicht. grund: er kennt offensichtlich das "fileDialog"-objekt nicht. muss ich evtl. eine bibliothek zusätzlich laden, oder gibt es dieses objekt in office 2000 noch nicht? wenn ja, wie kann ich das alternativ lösen?
' PUBLIC
'access-datei auswählen und öffnen
Public Function DlgMdbDateiAuswaehlen() As String
Dim fdsiSelectedItem As FileDialogSelectedItems
Set fdsiSelectedItem = DlgDateiAuswaehlen(sTitel:="Access-Datenbank auswählen:", _
sFilterBeschreibung:="Access-Datenbank", _
sFilterEndung:="*.mdb")
If Not fdsiSelectedItem Is Nothing Then
DlgMdbDateiAuswaehlen = fdsiSelectedItem.Item(1)
Else
DlgMdbDateiAuswaehlen = ""
End If
End Function
' PRIVATE
'+ dateiauswahl-dialog anzeigen und ausgewählte dateien öffnen
Private Function DlgDateiAuswaehlen(Optional ByVal bMehrfachauswahl As Boolean = False, _
Optional ByVal sTitel As String = "", _
Optional ByVal sFilterBeschreibung As String = "", _
Optional ByVal sFilterEndung As String = "") _
As FileDialogSelectedItems
Dim fd As FileDialog 'fileDialog-objekt
Dim vSelectedItem As Variant 'variable für alle selektierten items. muss ein
'variant sein, da "For Each ... Next" nicht mit
'einem string funktioniert
Set fd = Application.FileDialog(fileDialogType:=msoFileDialogFilePicker) 'dateiauswahl-dialogfeld
With fd
.AllowMultiSelect = bMehrfachauswahl 'es kann nur eine datei ausgewählt werden
If sTitel <> "" Then 'sezte titel, falls einer angegeben wurde, ansonsten standard-titel
.Title = sTitel
End If
Call .Filters.Add(Description:=sFilterBeschreibung, _
Extensions:=sFilterEndung, _
Position:=1) 'neuen filter definieren
.FilterIndex = 1 'neuen filter auswählen
If .Show = -1 Then 'falls der benutzer die schaltfläche zum ausführen der aktion gedrückt hat
Set DlgDateiAuswaehlen = .SelectedItems
Else
Set DlgDateiAuswaehlen = Nothing
End If
End With
Set fd = Nothing 'lösche der objekt-variable
End Function
danke für eure hilfe
gruss joel