2012-07-09 45 views
1

我目前有一个数据库,用于存储与我的数据相关联的图片路径,并使用VBA将它们显示在图片框中。它的效果很好,但添加图片的过程有点繁琐,用户难以正确使用它(输入错误的路径,忘记包含扩展名等)。这会导致数据库中一堆垃圾条目。我想简化这个过程。理想情况下,点击“添加图片”后,我想打开Windows资源管理器,让用户选择所需的图片,获取该图片的路径,并将其插入表格中。同样,我没有使用OLE,只是路径的文本字段。这可能吗?使用Windows资源管理器获取文件的路径(字符串)以存储在表中

+1

请参阅http://stackoverflow.com/questions/9105806/how-do-i-store-the-links在ms-access/9105887#9105887 – Fionnuala 2012-07-09 15:52:02

+0

@Remou这似乎是我需要做到这一点。午餐后我会尝试实施它。我将发布更新,以及完成后的工作,以供将来参考。 – Scotch 2012-07-09 15:57:45

+0

它给出了一个编译器错误。 Dim dlgOpen中的“用户定义类型未定义”作为FileDialog – Scotch 2012-07-09 16:50:46

回答

1

正如Remou引用的那样,可以使用FileDialog对象来完成此操作。对于很多人来说,可能需要添加对MS Office对象库的引用(Access Library不够)。我用于从资源管理器中选择的文件收集路径名的代码如下:

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 
+0

谢谢hans。我偶然发现了一个类似问题的答案http://stackoverflow.com/questions/9476268/filedialog-doesnt-work-in-access-2010那里。它帮了我很多。正如你在我的编辑中看到的那样,我想拥有文件的绝对路径,而不仅仅是文件名。你知道如何做到这一点? – Scotch 2012-07-09 17:36:47

+0

摆脱'Dir()'...它只返回你喂它的完整路径中的文件名。 IOW,试试这个:'Me.txtPath = .SelectedItems(1)' – HansUp 2012-07-09 17:40:48

+0

这是有效的。我会编辑我的答案,包括 - 谢谢。我认为所有这些都明确地回答了我的问题。 – Scotch 2012-07-09 18:03:58

相关问题