应用场景:Excel 或Access弹出文件选择对话框让用户选择图片或照片
如人事系统让用户可选择照片文件,即弹出个窗口让用户选择
或产品资料窗体让用户选择产品图片等场景
第一种办法:
不使用第三方控件,可以使用Excel 或Access 内置的Application.Filedialog
Excel
Sub UseFileDialogOpen()
Dim lngCount As Long
' 打开文件对话框
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True ’允许多选
.Show
' 每个文件路径名
For lngCount = 1 To .SelectedItems.Count
MsgBox .SelectedItems(lngCount)
Next lngCount
End With
End Sub
MsoFileDialogType 可为下述常量之一:
msoFileDialogFilePicker。 允许用户选择文件。
msoFileDialogFolderPicker。 允许用户选择文件夹。
msoFileDialogOpen。 允许用户打开文件。
msoFileDialogSaveAs。 允许用户保存文件。
FileDialog 用法之 打开对话框获得文件夹路径
FileDialog 可以根据后面的参数,打开通用对话框
Dim strPath As String
Dim MyFileDialog As FileDialog
Set MyFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
If MyFileDialog.Show = -1 Then
'使用循环显示选取文件的路径和名称
For Each vrtSelectedItem In MyFileDialog.SelectedItems
strPath = vrtSelectedItem
Next
End If
MsgBox strPath
第二种方法:
使用CommonDialog对话框控件
在Access窗体上放一个CommonDialog对话框控件,再放一个command按钮,加入如下代码
dim strFilePathName as String
With CommonDialog 'CommonDialog 是控件名
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 common dialog 控件的标志和属性
.Filter = "显示文件 (*.gif)|*.gif"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
strFilePathName = Trim(.FileName)
End With
其中strFilePathName 就是路径+文件名
第三种方法:
自己写类模块, 这种方法代码比较长,大家可百度一下