Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用Windows资源管理器获取要存储在表中的文件的路径(字符串)_Ms Access_Vba_Ms Access 2007 - Fatal编程技术网

Ms access 使用Windows资源管理器获取要存储在表中的文件的路径(字符串)

Ms access 使用Windows资源管理器获取要存储在表中的文件的路径(字符串),ms-access,vba,ms-access-2007,Ms Access,Vba,Ms Access 2007,我目前有一个数据库,用于存储与我的数据关联的图片路径,并使用VBA在imageframes中显示它们。它工作得很好,但是添加图片的过程有点乏味,用户很难正确使用它(键入错误的路径,忘记包含扩展名,等等)。这会导致数据库中出现大量垃圾条目。我想简化这个过程。理想情况下,单击“添加图片”时,我希望它打开windows资源管理器,让用户选择所需图片,获取该图片的路径,并将其插入表中。同样,我没有使用OLE,只是使用一个文本字段作为路径。这可能吗?正如Remou所引用的,FileDialog对象可用于完

我目前有一个数据库,用于存储与我的数据关联的图片路径,并使用VBA在imageframes中显示它们。它工作得很好,但是添加图片的过程有点乏味,用户很难正确使用它(键入错误的路径,忘记包含扩展名,等等)。这会导致数据库中出现大量垃圾条目。我想简化这个过程。理想情况下,单击“添加图片”时,我希望它打开windows资源管理器,让用户选择所需图片,获取该图片的路径,并将其插入表中。同样,我没有使用OLE,只是使用一个文本字段作为路径。这可能吗?

正如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

正如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

请看@Remou这似乎是我完成这项任务所需要的。午饭后我会尝试实施它。我将发布一个更新,以及我完成后所做的操作,以供将来参考。它给出了一个编译器错误。Dim dlgOpen As FILEDIALOG上的“未定义用户定义类型”首先需要添加对Microsoft Office对象库的引用。它现在正在打开windows资源管理器并允许我选择内容。我的问题是——如何将所选项的路径获取到窗体的控件上?请参阅@Remou这似乎是我需要完成的。午饭后我会尝试实施它。我将发布一个更新,以及我完成后所做的操作,以供将来参考。它给出了一个编译器错误。Dim dlgOpen As FILEDIALOG上的“未定义用户定义类型”首先需要添加对Microsoft Office对象库的引用。它现在正在打开windows资源管理器并允许我选择内容。我的问题是--如何将所选项目的路径获取到窗体的控件上?谢谢hans。我从一个类似的问题中偶然发现了你的一个答案。它帮了我不少忙。正如您在我的编辑中所看到的,我希望获得文件的绝对路径,而不仅仅是文件名。你知道怎么做吗?摆脱
Dir()
。。。它只返回您提供给它的完整路径中的文件名片段。下面,试试这个:
Me.txtPath=.SelectedItems(1)
这很有效。我将编辑我的答案,包括这一点-谢谢。我想所有这些都肯定地回答了我的问题。谢谢汉斯。我从一个类似的问题中偶然发现了你的一个答案。它帮了我不少忙。正如您在我的编辑中所看到的,我希望获得文件的绝对路径,而不仅仅是文件名。你知道怎么做吗?摆脱
Dir()
。。。它只返回您提供给它的完整路径中的文件名片段。下面,试试这个:
Me.txtPath=.SelectedItems(1)
这很有效。我将编辑我的答案,包括这一点-谢谢。我想所有这些都肯定地回答了我的问题。