使用 Windows 资源管理器获取要存储在表中的文件的路径(字符串)
Posted
技术标签:
【中文标题】使用 Windows 资源管理器获取要存储在表中的文件的路径(字符串)【英文标题】:Using Windows Explorer to get path(string) of a file to store in a table 【发布时间】:2012-07-09 15:46:49 【问题描述】:我目前设置了一个数据库来存储与我的数据相关联的图片路径,并使用 VBA 将它们显示在图像帧中。它工作得很好,但是添加图片的过程有点乏味,用户很难正确使用它(输入错误的路径,忘记包含扩展名等)。这会导致数据库中出现一堆垃圾条目。我想简化这个过程。理想情况下,当单击“添加图片”时,我希望它打开 Windows 资源管理器,让用户选择所需的图片,获取该图片的路径,并将其插入表格中。同样,我没有使用 OLE,只是路径的文本字段。这可能吗?
【问题讨论】:
见***.com/questions/9105806/… @Remou 这似乎是我完成此任务所需要的。我打算在午餐后尝试实施它。我将发布更新以及我完成后所做的工作以供将来参考。 它给出了一个编译器错误。 Dim dlgOpen As FileDialog 处的“用户定义类型未定义” 首先需要添加对 Microsoft Office 对象库的引用。它现在正在打开 Windows 资源管理器并允许我选择内容。我的问题是——如何将所选项目的路径放到表单的控件上? 【参考方案1】:正如 Remou 所引用的,FileDialog 对象可用于完成此操作。对于许多人来说,可能需要添加对 MS Office 对象库的引用(Access 库是不够的)。我用来从资源管理器中选择的文件中收集路径名的代码如下:
Public Sub ShowFileDialog()
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = False
.InitialFileName = "Z:\" 'Initial Path when explorer is opened
.Show
If .SelectedItems.Count = 0 Then
MsgBox ("No file Selected") 'No file selected
Else
Me.txtPath = .SelectedItems(1) 'sets textbox on the form to the path selected
End If
End With
End Sub
【讨论】:
谢谢汉斯。我从那里的一个类似问题***.com/questions/9476268/… 中偶然发现了你的一个答案。它帮助了我很多。正如您在我的编辑中看到的那样,我想要文件的绝对路径而不仅仅是文件名。你知道怎么做吗? 摆脱Dir()
...它只返回您提供的完整路径中的文件名片段。 IOW,试试这个:Me.txtPath = .SelectedItems(1)
这行得通。我将编辑我的答案以包括在内 - 谢谢。我认为所有这些都明确地回答了我的问题。以上是关于使用 Windows 资源管理器获取要存储在表中的文件的路径(字符串)的主要内容,如果未能解决你的问题,请参考以下文章