Wie erhalte ich einen einzelnen Dateinamen aus einem Datei-Dialog-Objekt in VBA (für MS Access 2007)?
-
23-09-2019 - |
Frage
Wie kann ich den Code ändern Sie die Dateinamen statt die Verzeichnisnamen zu bekommen? openDialog.InitialFilename
gibt mir die Verzeichnisnamen.
openDialog.FileName
gibt mir die Fehlermeldung „Methode oder Datenelement nicht gefunden“.
Private Sub btnEditPhoto_Click()
If (txtImageName > "") Then
Application.FollowHyperlink txtImageName
Else
Dim openDialog As Office.FileDialog
Set openDialog = Application.FileDialog(msoFileDialogFilePicker)
openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"
Dim pickedFile As Boolean
pickedFile = openDialog.Show
If pickedFile Then
txtImageName.SetFocus
txtImageName.Text = openDialog.InitialFileName
End If
End If
End Sub
Lösung
Sie möchten:
OpenDialog.SelectedItems.Item(1)
Anstelle von:
OpenDialog.InitialFileName
Wie Sie nicht erlaubt Mehrfachauswahl haben.
So:
''Reference Microsoft Office x.x Object Library
Dim openDialog As Office.FileDialog
Set openDialog = Application.FileDialog(msoFileDialogFilePicker)
openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"
If openDialog.Show Then
''SelectedItems is not zero based
''Do not use .Text property in MS Access except
''in special cases, then you will not have to set focus
''txtImageName.SetFocus
txtImageName = openDialog.SelectedItems(1)
End If
Wenn AllowMultiSelect verwendet wird, müssen Sie durchlaufen SelectedItems
''Reference Microsoft Office x.x Object Library
Dim openDialog As Office.FileDialog
Dim i As Integer
Set openDialog = Application.FileDialog(msoFileDialogFilePicker)
'Use ctl or shift + click to select more than one file
openDialog.AllowMultiSelect = True
openDialog.Filters.Clear
openDialog.Filters.Add "JPEG Files", "*.jpg"
If openDialog.Show Then
For i = 1 To openDialog.SelectedItems.Count
Imagelst = Imagelst & ";" & openDialog.SelectedItems(i)
Next
End If
Andere Tipps
Ich brauchte eine Textdatei wählen ... das ist, was ich getan habe ... es funktioniert gut.
' Get the File
'----------------------------------------------------------
Dim dialog As Object
Dim pickedfile As Boolean
Dim myfile As String
Set dialog = Application.FileDialog(msoFileDialogFilePicker)
With dialog
.AllowMultiSelect = False
.Title = "Please pick the file to convert."
.Filters.Clear
.Filters.Add "Text Files", "*.TXT"
.Filters.Add "All Files", "*.*"
pickedfile = False
pickedfile = .Show
If pickedfile Then
myfile = .SelectedItems.Item(1)
End If
End With
'----------------------------------------------------------
Zusätzlich ... können Sie den Dialog Typ mit ...
ersetzenSet dialog = Application.FileDialog(msoFileDialogOpen)
und es funktionierte genauso gut.
Private Sub Command135_Click()
Dim dialog As Object
Dim pickedfile As Boolean
Dim myfile As String
Set dialog = Application.FileDialog(1)
With dialog
.AllowMultiSelect = False
.Title = "Please pick the file to convert."
.Filters.Clear
.Filters.Add "Picture Files", "*.Jpg"
.Filters.Add "All Files", "*.*"
pickedfile = False
pickedfile = .Show
If pickedfile Then
myfile = .SelectedItems.Item(1)
End If
End With
Me.Form.Picture = myfile
End Sub
Command_135=Button Name
Me.Form.Picture = "The Control Name"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow