Hi Krissy,
da ich selbst in Sachen VBA nicht so bewandert bin habe ich mal nen Kollegen gefragt, der darin ziemlich fit ist… hier seine Antwort:
Kommt drauf an was er damit machen möchte.
Ich lese die Dateien für den Tagesticker auch mit dem FileOpen-Dialog aus.
Den Rückgabewert schreibe ich dann in ein Textfeld auf einem Formular:
Function Datei_choose()
Dim fd As FileDialog
Dim Dateiauswahl As Variant
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.InitialFileName = „C:\Test“
(Hier kann der Standardpfad für den Fileopen-Dialog übergeben werden)
.AllowMultiSelect = False
(Nur einfache Auswahl, nicht mehrere Dateien, sonst mit true umschaltbar)
If .Show = -1 Then
(.Show öffnet den Filedialog und wenn nix ausgewählt wurde oder abgebrochen wurde ist die Rückgabe = 0, bei -1 erfolgte Auswahl)
For Each Dateiauswahl In .SelectedItems
(.SelectedItems ist quasi ein kleiner Recordset, welcher alle ausgewählten Dateien (hier nur eine mögliche) beinhaltet -> kompletter Dateipfad Bsp:
C:\Test\Testdatei.txt
Me.Imp_Text = Dateiauswahl
(Me.Imp_Text ist mein Formularfeld, an welches ich den Inhalt des Fileopen übergebe. Hier eine beliebiege Variable als String declariert und du kannst damit rum spielen :o)
Next Dateiauswahl
Else
Me!Imp_Text = „(keine)“
(Behandlung des Textfeldes auf Formular wenn keine Auswahl erfolgt ist)
End If
End With
myexit:
DoCmd.Hourglass False
(Standarfehlerbehandlung…)
Exit Function
myerror:
MsgBox Err.Description
Resume myexit
End Function
Hoffe das hilft :o)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]