使用 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 资源管理器获取要存储在表中的文件的路径(字符串)的主要内容,如果未能解决你的问题,请参考以下文章

在表中插入主键的问题

Redshift - 问题在存储在表中的表中显示时差

从 Oracle Apex 页面获取多个值并将其存储在表中

Vue(Laravel 8)无法正确呈现存储在表中的数组

Postgresql以存储在表中的类型返回变量

MSSQL之三 在表中操纵数据