Office中国论坛/Access中国论坛

标题: 请教打开文件对话框指定格式筛选 [打印本页]

作者: accesscx    时间: 2010-12-2 16:54
标题: 请教打开文件对话框指定格式筛选
Function GetFileName(TitleText As String, Filter As String, FilterText As String, ByVal DialogType As Integer, Optional ByVal FilePath) As String
'参数DialogType说明:
'1.“打开”对话框
'2.“另存为”对话框(这个项不好用,所以加了出错处理为 Resume Next)
'3.“文件选取器”对话框
'4.“文件夹选取器”对话框
'例:AA = GetFileName("打开", "*.ini;*.txt", "配置文件", 1)

On Error Resume Next
    Dim dlgOpen As FileDialog
    Set dlgOpen = Application.FileDialog(DialogType)
    With dlgOpen
        .title = TitleText
        .Filters.Clear
        .Filters.ADD FilterText, Filter
        .AllowMultiSelect = False     
        If IsMissing(FilePath) Then
            .InitialFileName = a(10)
        Else
            .InitialFileName = FilePath
        End If
        .Show
    End With
    If dlgOpen.SelectedItems.Count > 0 Then
        GetFileName = dlgOpen.SelectedItems(1)
    Else
        GetFileName = ""
    End If
    Set dlgOpen = Nothing

End Function

'4.“文件夹选取器”对话框
'例:AA = GetFileName("打开", "*.ini;*.txt", "配置文件", 1) 这个格式是放在一起了

怎么改成:  
*.ini
*.txt
*.PDF
这样?


作者: roych    时间: 2010-12-2 21:16
没那么复杂吧?

Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Excel电子表格(*.xls)", "*.xls"
.Title = "请浏览文件"
.ButtonName = "打开"
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
Me.路径.Value = CStr(fd.SelectedItems.Item(1))
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "临时表", Me.路径.Value, True
Me.临时表.Requery
Else
Debug.Print "用户取消"
End If
End With
这是Long Long ago时我写的一个文件选择器,选择完毕后导入数据(If那部分你可以删掉)
如果想改为文件夹选择器,请把fd = Application.FileDialog(msoFileDialogFilePicker)改为:
fd = Application.FileDialog(msoFileDialogForderPicker)
需要注意的是,必须要引用Office库,我在实验过程中发现Access 2003引用的是Office 12.0的库,结果在Access 2000里不兼容,出现引用错误。最后只好在Access 2000里引用11.0的库,才算解决问题(微软就是向下兼容,没辙)。
作者: accesscx    时间: 2010-12-4 00:25
[attach]44271[/attach]

就是实现上图那样,给个示范吧

作者: 咱家是猫    时间: 2010-12-4 10:18
回复 accesscx 的帖子

http://www.office-cn.net/thread-94154-1-1.html
作者: szyewj    时间: 2011-5-11 00:20
赞一个,看得出来下了不少功夫,很精致




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3