В Access XP есть Application.FileDialog(msoFileDialogOpen)
Может я не до конца разобрался? Добился открытия диалога для выбора файлов.
А мне нужно, чтобы можно было выбрать не более одного файла. Как?
'В качестве переменной sFullPath задается полный путь файла,
'в качестве point задается разделитель: "\" - если вы хотите получить имя файла,
'"." - если вы хотите получить расширение файла.
Public Function Spliting(sFullPath As String, point As String)
Dim str1() As String
str1 = Split(sFullPath, point)
Spliting = str1(UBound(str1))
End Function
'MaxS как у 1С ;)
'ВыбратьФайл(<?>,,,,)
'Синтаксис:
'ВыбратьФайл(<ТипДиалога>,<ИмяФайла>,<ИмяНачКаталога>,<ЗаголовокОкна>,<Фильтр>,<Расширение>,<Таймаут>)
'Назначение:
'Открывает окно диалога выбора/сохранения файла.
'Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена', 1 - если нажата кнопка 'ОК'.
'Параметры:
'<ТипДиалога> -: 0 - диалог типа <открыть>, 1 - диалог типа <сохранить>;
'<ИмяФайла> - переменная, содержащая на входе строку с именем файла, а на выходе - имя выбранного файла;
'<ИмяНачКаталога> - переменная, содержащая на входе строку с начальным каталогом, а на выходе - имя выбранного каталога;
'<ЗаголовокОкна> - строка с заголовком окна;
'<Фильтр> - строка с фильтром отбора файлов (например: 'Все файлы (*.*) |*.*');
'<Расширение> - строка с расширением файла по умолчанию;
'<Таймаут> - время ожидания отклика пользователя в секундах (необязателен).
Public Function ВыбратьФайл(ТипДиалога, Optional ByRef ИмяФайла As String, Optional ByRef ИмяНачКаталога As String, Optional ЗаголовокОкна As String = "Выберите файл...", Optional Фильтр As String = "Все файлы", Optional Расширение As String = "*.*", Optional Таймаут) As Integer
Dim Му_Диалог As FileDialog
Dim ФайлПуть As String, ИмяНачКаталогаЗдесь As String
If Len(ИмяНачКаталога) < 1 Then
ИмяНачКаталогаЗдесь = CurrentProject.Path
Else
ИмяНачКаталогаЗдесь = ИмяНачКаталога
End If
If ТипДиалога = 0 Then
Set Му_Диалог = Application.FileDialog(msoFileDialogOpen)
Му_Диалог.ButtonName = "Открыть"
Else
Set Му_Диалог = Application.FileDialog(msoFileDialogSaveAs)
Му_Диалог.ButtonName = "Сохранить"
End If
'Dim vrtSelectedItem As Variant
With Му_Диалог
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add Фильтр, Расширение, 1
.FilterIndex = 1
.InitialView = msoFileDialogViewDetails
.InitialFileName = ИмяНачКаталогаЗдесь
.Title = ЗаголовокОкна
ВыбратьФайл = -.Show
If ВыбратьФайл = 1 Then
ФайлПуть = .SelectedItems.Item(1)
ИмяФайла = Spliting(ФайлПуть, "\")
ИмяНачКаталога = Left(ФайлПуть, Len(ФайлПуть) - Len(ИмяФайла) - 1)
End If
End With
End Function
Sub TestВыбратьФайл()
Dim имФайла As String
ВыбратьФайл 0, , , , "Excel", "*.xls"
End Sub
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 116