将文件名导入列表框,无需路径访问 2007 vba-
Posted
技术标签:
【中文标题】将文件名导入列表框,无需路径访问 2007 vba-【英文标题】:Import file name into list box without path access 2007 vba- 【发布时间】:2009-11-24 03:10:03 【问题描述】:我正在创建一个数据库,用户可以在其中单击命令按钮,他们将被带到一个存储在受信任位置的文件夹,他们可以从那里选择一个 word 文档,所有所选文件的名称都将显示在表单上的列表框。我们有代码可以双击文件名来打开文档。我们正在寻找的是在列表框中只显示文件名而不显示路径的代码。
到目前为止,我们已使用此站点的“如何在 access 2007 vba 中显示打开的文件对话”问题中给出的示例代码进行设置。
任何帮助都会很棒。
【问题讨论】:
Ta Tony,我似乎无法让它工作:这是我们目前的代码。单击命令按钮文件对话框打开并执行,公共函数将其修剪为只有文件名 DblClick 从列表框中打开选定的对象。我们现在的问题是文件名已经修剪了路径,无法双击打开。到目前为止,我们已经让它正常工作了。 【参考方案1】:对要插入列表框中的每个文件名执行以下代码。
Dim Chunks() As String, DocumentName As String
Chunks() = Split("\\server\share\folder\subfolder\docuemnt.doc", "\")
DocumentName = Chunks(UBound(Chunks()))
【讨论】:
【参考方案2】:您可以使用 FileSystemObject 快速获取文件名部分
编辑 - 来自 BitAccesser 的好建议
需要引用 Microsoft Scripting Runtime,或者您需要使用 CreateObject("Scripting.FileSystemObject")
Const WORD_TEST_PATH As String = "C:\users\admin\test\test.doc"
Dim fso As New FileSystemObject
Dim strWordFileName As String
strWordFileName = fso.GetFileName(WORD_TEST_PATH)
Debug.Print strWordFileName
输出为:test.doc
只需将 WORD_TEST_PATH 替换为从对话框路径返回的文件名
【讨论】:
为什么这被否决了?FileSystemObject
不是最先进的(例如:易于获取文件名、路径、类型、日期等)吗?
感谢@BitAccesser 取消它。我不会担心的。我看到了一些奇怪的事情。我能想到的只是我将变量命名为常量 - 但认为它比 GetFileName 调用中的硬编码更好。无论如何,我认为这是 FSO 的一个很好的基本示例。我经常使用它。它功能强大且易于使用。
由于我是新人且充满热情(我们会看到多久),所以我会坚持下去并抱怨 ;)
也许有人偶然发现了 FSO
(Microsoft 脚本运行时)的缺失参考,您应该提及这一点或切换到后期绑定。以上是关于将文件名导入列表框,无需路径访问 2007 vba-的主要内容,如果未能解决你的问题,请参考以下文章
Access 2007 VBA:构建一个列表框,其中包含来自另一个列表框的选择选项
Access 2007 使用 VBA/SQL 语句中列表框中的 ID 值
使用带有 postgresql 表的 vba 填充组合框访问 2007