如果要使用对话框选择文件,可以使用FileDialog属性,其具体语法:
Application.FileDialog([对话框类型])
Access不支持msoFileDialogOpen(打开对话框)和msoFileDialogSaveAs(另存为对话框)类型的对话框。仅支持mscFileDialogFolderPicker(文件夹选择器)和msoFileDialogFilePicker(文件选择器)类型的对话框。
获取对话框之后,还可以设置对话框的属性,比如对话框名称、是否允许多选等。
并且需要使用Show方法将对话框显示出来,才可以进行后续的选择文件操作,其具体语法:
[文件对话框].show
在使用文件对话框选择文件之后,如果需要获取所选文件的路径等,可以使用文件对话框的SelectedItem集合的Item属性,其具体语法:
[文件对话框].SelectedItem.Item([索引号])
索引号表示返回的所有选中文件中的第几个文件,如果在程序中设置了文本对话框的不允许多选,则索引号只能够取1.否则,索引号可以取1到选择的文件数之间的任意整数。
本例中的FileDialog属性,需要在引用了“Microsoft
Office 14.0 Object Library”支持库之后,才能够使用。
VBA代码:
'通过文件对话框获取文件路径
Sub 文件路径()
On Error Resume Next
Dim F_Dlg As Office.FileDialog
Dim Fl As Variant
'获取文件对话框
Set F_Dlg = Application.FileDialog(msoFileDialogFilePicker)
'设置文件对话框属性
With F_Dlg
'不允许多选
.AllowMultiSelect = False
'清空文件筛选器
.Filters.Clear
'在文件筛选器中筛选出文本文件
.Filters.Add "文本文件", "*.txt"
'在文件筛选器中筛选出所有文件
.Filters.Add "所有文件", "*.*"
End With
'显示文件对话框
F_Dlg.Show
'获取第一个选项(即选中文件的路径)
Fl = F_Dlg.SelectedItems.Item(1)
'输出选择文件路径
MsgBox "所选文件路径为:" & Chr(10) & Fl, , "文件路径"
End Sub
执行过程:按F5键运行“文件路径”过程.