设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3224|回复: 10
打印 上一主题 下一主题

[窗体] (我学access)获取文件夹或文件的方法

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-24 10:04:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 简 于 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)指第一个选取的文件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +10 收起 理由
todaynew + 10 能力来自常探索,经验源于瞎琢磨。

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2011-4-24 11:19:23 | 只看该作者
总结不错,图文并茂!
3#
发表于 2011-4-24 12:26:17 | 只看该作者
赞一个。LZ够昂,还有ButtonName 、Title、Filters、InitialView等属性啊,如果选取文件的话,过滤器的属性算是比较重要的。
俺没那个耐性,一般只在所用的代码里进行注释罢了。引用了Office库之后,其实很多属性网友们都可以自行摸索的。
4#
发表于 2011-4-24 15:07:57 | 只看该作者
简 发表于 2011-4-24 10:04
我们在做数据库设计时,经常要获取文件夹或文件的路径,名称。目前常用的方法有两种,一种是使用API函数,一 ...

能力来自常探索,经验源于瞎琢磨。
5#
发表于 2011-5-10 23:17:57 | 只看该作者
能力来自常探索,经验源于瞎琢磨
6#
发表于 2012-6-19 14:36:15 | 只看该作者
总结的不错
7#
发表于 2012-6-19 14:58:38 | 只看该作者
{:soso_e163:}
8#
发表于 2012-6-19 16:26:21 | 只看该作者
文件选取器,选取了文件之后怎么打开?
9#
发表于 2012-9-7 21:21:14 | 只看该作者
很好的东西,还免费。免费的东西大家一般都不回帖,我顶一下
10#
发表于 2012-9-12 18:40:36 | 只看该作者
“在用该函数之前,必须先勾选Microsoft office 11.0 object Library引用,否则会出错。如图所示。

我用的是access 2003,请问,在哪里设置啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 18:03 , Processed in 0.094016 second(s), 39 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表