访问报告中图像的相对路径
Posted
技术标签:
【中文标题】访问报告中图像的相对路径【英文标题】:Relative path to images in access reports 【发布时间】:2017-06-06 11:51:33 【问题描述】:这是我第一次构建数据库,我想分享我遇到的问题的解决方案。
我的问题是我想为报告中的每条记录显示不同的图像,但我也希望能够移动数据库。这是一个问题。我在所有论坛中搜索,所有不同的解决方案都不起作用。我还发现微软写的一篇文章说,唯一的方法是要么存储图像的完整路径,要么将图像存储在数据库中。但是如果数据库被移动,就会出现问题,或者将图像存储在数据库中会占用大量存储空间。
问题是代码不适用于报告中的每条记录,代码适用于整个报告。因此,编写代码来查找后端和图像文件夹将导致在报告中显示该报告中所有记录的第一张图像。
但是我发现,当只将图像的名称存储在表中时,它有时会起作用(但它不应该有,因为我没有路径)但是当我重新启动数据库时它会停止工作.进一步调查我发现,每当您打开文件浏览器时,它都会将路径存储在某种内存中。只要图像的路径存储在内存中,它将能够将图像链接到路径。
所以我的解决方案……
当您访问报告的表单打开时,文件浏览器将打开并粘贴到图像的路径(使用代码查找后端和图像文件夹),然后关闭浏览器。这将使用路径创建指向图像名称(存储在表中)的链接。并且每个不同的图像将显示在报告中的每个不同的记录中。
不是一个很好的解决方案。每当打开表单时,您都会看到文件浏览器的闪烁。但它可以完成工作。
在加载表单事件中:
`'这将找到后端和图像文件夹:
Dim filepath As String
Dim strBackEndPath As String
Dim lenPath As Integer
Dim i As Integer
Dim j As Integer
strBackEndPath = CurrentDb.TableDefs("yourTabeInBackend").Connect
j = InStrRev(strBackEndPath, "=") + 1
strBackEndPath = Mid(strBackEndPath, j)
BackPath = Left(strBackEndPath, InStrRev(strBackEndPath, "\"))
filepath = BackPath & "YourImageFolder\"
'this will open the folder browser and paste in the path and close it:
Dim f As Object
Set f = Application.FileDialog(msoFileDialogFolderPicker)
Dim varFile As Variant
Dim strPath As String
Dim fileName As String
With f
.InitialFileName = (filepath)
.AllowMultiSelect = False
SendKeys "ESC", True
f.Show
For Each varFile In .SelectedItems
Next varFile
End With
`
【问题讨论】:
【参考方案1】:您可以将图片移动到数据库文件夹的子文件夹。
然后像这样保存图片的名称:
Picture1.jpg
Picture2.jpg
等等
运行应用时,获取图片的路径:
PictureFolder = CurrentProject.Path & "\FolderName\"
那么图片的路径就是:
PictureFolder & Me!PictureFileName.Value
当你“移动”你的数据库时,同时移动数据库文件和带有图片文件的文件夹。
【讨论】:
这适用于表单,或者如果您在报告中有一条记录。但是,如果您想在报告中为多条记录提供不同的图像,它将不起作用(无论如何对我来说)。它将显示报告中所有记录的报告中第一条记录的图像。 是的,你需要更多的东西来获得一个连续的表格,但你肯定明白了。创建一个辅助函数,它总是返回包含当前文件夹的路径,如UrlContent
函数here。另一种选择是将图片存储在网络服务器上的共享文件夹中。【参考方案2】:
是的,我刚刚遇到了同样的问题,我同意 Richard_Ha 所说的,但就我而言,我通过在文本框上存储图像路径及其工作来解决它..
第一个文本框名称“fileimage_txt”并绑定到表格上的图像文件名列表
带有属性的第二个文本框名称“image_path”
Source Control : =GetImagePath()
visible : No (if u dont want it get printed)
和带有属性的图像控件
Source Control : =[path_txt] & [fileimage_txt]
【讨论】:
以上是关于访问报告中图像的相对路径的主要内容,如果未能解决你的问题,请参考以下文章