将文件名导入列表框,无需路径访问 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

使用 vba 将 xls/csv 文件插入到 access 2007 表中

访问 2007 VBA DoCmd.Close 不起作用

导入规范访问 vba