#forms #ms-access #file-browser
#формы #ms-access #файловый браузер
Вопрос:
Я хотел бы добавить кнопку «Обзор» в форму MS Access 2007, которая вызовет стандартный файловый браузер Windows (в виде модального окна) и позволит пользователю выбрать каталог. Когда пользователь завершает работу в этом браузере, путь к выбранному каталогу должен быть записан в текстовое поле в форме Access.
Каков наилучший способ сделать это? Существует ли собственный способ доступа?
Ответ №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: Диалоговое окно BrowseFolder.
Комментарии:
1. Я всегда рекомендую использовать вместо этого Windows API, поскольку я не верю, что MS когда-нибудь не удалит объект FileDialog из Office, как они удалили объект FileSearch из Office 2007.