Использование диалога поиска файлов в Access VBA - PullRequest
5 голосов
/ 27 января 2011

я видел эту тему Как отобразить диалоговое окно «Открыть файл» в Access 2007 VBA? и мне нравится решение, которое не использует ссылки, однако я не могу понять, как отобразить файл путь, который выбрал пользователь. Может кто-нибудь, пожалуйста, объясните

Большое спасибо

это та часть, о которой я говорю

Dim f As Object   
Set f = Application.FileDialog(3)   
f.AllowMultiSelect = True   
f.Show    
MsgBox "file choosen = " & f.SelectedItems.Count

1 Ответ

6 голосов
/ 27 января 2011

Перво-наперво: вы всегда должны по возможности использовать строго типизированные переменные. В этом случае вы можете заменить Object на Office.FileDialog.

Чтобы отобразить пути к каждому выбранному файлу, вам нужно перебрать коллекцию SelectedItems. Например, вы бы добавили следующий код:

Dim f As Office.FileDialog
Set f = Application.FileDialog(3)   
f.AllowMultiSelect = True

' Show the dialog. If the method returns True, the user picked at least one file.
' If the method returns False, the user clicked Cancel.
If f.Show Then
    MsgBox f.SelectedItems.Count & " file(s) were chosen."

    ' Display the full path to each file that was selected
    Dim i As Integer
    For i = 1 To f.SelectedItems.Count
        MsgBox f.SelectedItems(i)
    Next i
End If

Обратите внимание, что FileDialog также имеет другие свойства, которые вы можете установить, если вам требуется настройка. Например, свойство .Title позволяет указать заголовок, который будет отображаться в качестве заголовка диалога в строке заголовка. Вы также можете указать фильтр, используя свойство .Filter, которое будет ограничивать тип файлов, которые пользователь сможет видеть и выбирать в диалоговом окне. Например, если вы хотите ограничить выбор только доступом к базам данных, вы можете добавить следующий код:

' Clear out the current filters
f.Filters.Clear

' Add a few custom filters
f.Filters.Add "Access Databases", "*.mdb"
f.Filters.Add "All Files", "*.*"
...