Добавление кнопки браузера файлов в форму MS Access

Я хотел бы добавить кнопку «Обзор» в форму MS Access 2007, которая вызовет стандартный файловый браузер Windows (в виде модального окна) и позволит пользователю выбрать каталог. Когда пользователь выходит из этого браузера, путь к выбранному каталогу должен быть записан в текстовое поле в форме доступа.

Как лучше всего это сделать? Есть ли родной способ доступа?


person Isaac Moses    schedule 01.06.2011    source источник


Ответы (1)


Создайте функцию, которая использует Application.FileDialog. FileDialog является модальным.

Эта функция вернет выбранную пользователем папку, если он ее сделал, или пустую строку, если он нажал кнопку «Отмена» в файле FileDialog.

Public Function FolderSelection() As String
    Dim objFD As Object
    Dim strOut As String

    strOut = vbNullString
    'msoFileDialogFolderPicker = 4
    Set objFD = Application.FileDialog(4)
    If objFD.Show = -1 Then
        strOut = objFD.SelectedItems(1)
    End If
    Set objFD = Nothing
    FolderSelection = strOut
End Function

Я думаю, вы можете использовать эту функцию в событии нажатия вашей командной кнопки.

Dim strChoice As String
strChoice = FolderSelection
If Len(strChoice) > 0 Then
    Me.TextBoxName = strChoice
Else
    ' what should happen if user cancelled selection?
End If

Если вы обеспокоены тем, что Microsoft может когда-нибудь удалить объект FileDialog из Office, вы можете вместо этого использовать метод Windows API: Диалоговое окно "Обзор папки".

person HansUp    schedule 01.06.2011
comment
Я всегда рекомендую вместо этого использовать Windows API, так как я не верю, что MS когда-нибудь не удалит объект FileDialog из Office, поскольку они удалили объект FileSearch из Office 2007. - person David-W-Fenton; 03.06.2011