本帖最后由 简 于 2011-4-24 10:11 编辑
我们在做数据库设计时,经常要获取文件夹或文件的路径,名称。目前常用的方法有两种,一种是使用API函数,一种是使用access2000以后各版本提供的FileDialog控件。我个人觉得API函数代码太复杂了,理解上有困难,所以偏向于FileDialog控件,这也是todaynew老汉作品中常用的方法,即GetFold函数。
现将个人对GetFold函数的学习和理解整理如下。
在用该函数之前,必须先勾选Microsoft office 11.0 object Library引用,否则会出错。如图所示。
GetFild函数代码如下:
'===================================================== '-函数名称:GetFild '-功能描述:用来查找文件夹目录 '-输入参数: '-返 回 值:字符 '-调用方法:Me.txtsave = GetFild() '===================================================== Public Function GetFild() As String '功能:查找文件
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogFolderPicker) With dlgOpen .AllowMultiSelect = False .Show End With
If dlgOpen.SelectedItems.Count = 0 Then
GetFild = CurDir Else GetFild = GetFild & dlgOpen.SelectedItems(1) End If
Set dlgOpen = Nothing End Function
代码解释:
lDim dlgOpen As FileDialog
将dlgOpen 设为FileDialog对象。
FileDialog对象提供文件对话框,功能与 Microsoft Office 应用程序中标准的“打开”和“保存”对话框类似。利用这些对话框,用户可以简便地指定应该使用的文件和文件夹。
lSet dlgOpen = Application.FileDialog(msoFileDialogFolderPicker)
在这段代码中,msoFileDialogFolderPicker参数表明打开的是文件夹选取器。 FileDialog对象的格式及参数: expression.FileDialog(dialogType) expression 必需。返回“应用于”列表中的一个对象的表达式。 dialogType 必需,MsoFileDialogType,文件对话框的类型。
它有四种类型: 1)“打开”对话框msoFileDialogOpen: 让用户选择一个或多个可以在主机应用程序中使用 Execute 方法打开的文件。
2)“另存为”对话框msoFileDialogSaveAs: 让用户选择一个可以使用 Execute 方法保存当前文件的文件。
3)“文件选取器”对话框msoFileDialogFilePicker: 让用户选择一个或多个文件。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
4)“文件夹选取器”对话框msoFileDialogFolderPicker: 让用户选择一个路径。用户选择的文件路径将捕获到 FileDialogSelectedItems 集合。
l.AllowMultiSelect = False
如果为True,则允许用户从文件对话框中选择多个文件。 如果为False,则只能单选文件。
注意:该属性对“文件夹选取器”对话框和“另存为”对话框无效,因为用户不应从这类文件对话框中选择多个文件。
l.Show
如果没有该语句,则不能显示文件对话框。
要使用 FileDialog 对象显示一个对话框,必须使用 Show 方法。对话框显示后,在用户消除对话框之前将不执行任何代码。在“打开”和“另存为”对话框中,在使用了 Show 方法之后将使用 Execute 方法执行用户操作。
lIf dlgOpen.SelectedItems.Count = 0 Then
GetFild = CurDir Else GetFild = GetFild & dlgOpen.SelectedItems(1) End If
这几行代码的意思是:如果没有选中的文件夹/文件,则返回当前的路径;如果有选中的文件夹/文件,则返回该文件夹/文件的路径。
CurDir:代表当前的路径。 SelectedItems:指用户在文件对话框中所选的文件,该对话框由 FileDialog 对象的 Show 方法打开。 SelectedItems(1):由于代码中是单选,所以SelectedItems(1)指第一个选取的文件。
|