如何解决如何显示MS Access表附件或存储在表单上SharePoint位置的图像?
我正在使用Office 365的Microsoft Access为一个工作项目制作一个小型游戏。我有一个表格,其中包含所有答案以及作为附件存储的相关图片。用户将通过SQL查询滚动浏览通过“记录源”提供的记录。
我希望将图像存储在其他位置,但是并非所有目标用户都可以访问公用网络文件夹。我确实可以访问常见的SharePoint位置,可以在其中将其结果上传到链接的SharePoint列表中,但是当我尝试从SharePoint位置插入图像时,MS Access不允许使用“网址”。
在测试中,我使用VBA通过子窗体上的“图片属性”将图像(托管在网络文件夹中)显示为背景,但由于并非所有用户都可以访问公用网络文件夹,因此我可以在生产中做到这一点。 (创建此文件夹后,发现没有公用文件夹。)
OR
如何使用SharePoint托管图像?
“开箱即用”的MS Access是否有可能实现这些目的?
编辑:使用.accdr格式来防止用户查看表格中的答案
解决方法
由于您将拥有图片的URL,因此可以使用我喜欢的功能 UrlContent :
' Download (picture) file from a URL of a hyperlink field to a
' (temporary) folder,and return the full path to the downloaded file.
'
' This can be used as the control source for a bound picture control.
' If no Folder is specified,the user's IE cache folder is used.
'
' Typical usage in the RecordSource for a form or report where Id is
' the unique ID and Url is the hyperlink field holding the URL to
' the picture file to be displayed:
'
' - to a cached file where parameter Id is not used:
'
' Select *,UrlContent(0,[Url]) As Path From SomeTable;
'
' - or,where Id is used to create the local file name:
'
' Select *,UrlContent([Id],[Url],"d:\somefolder") As Path From SomeTable;
'
' Then,set ControlSource of the bound picture control to: Path
'
' 2017-05-28. Gustav Brock,Cactus Data ApS,CPH.
'
Public Function UrlContent( _
ByVal Id As Long,_
ByVal Url As String,_
Optional ByVal Folder As String) _
As Variant
Const NoError As Long = 0
Const Dot As String = "."
Const BackSlash As String = "\"
Dim Address As String
Dim Ext As String
Dim Path As String
Dim Result As String
' Strip leading and trailing octothorpes from URL string.
Address = HyperlinkPart(Url,acAddress)
' If Address is a zero-length string,Url was not wrapped in octothorpes.
If Address = "" Then
' Use Url as is.
Address = Url
End If
If Folder = "" Then
' Import to IE cache.
Result = DownloadCacheFile(Address)
Else
If Right(Folder,1) <> BackSlash Then
' Append a backslash.
Folder = Folder & BackSlash
End If
' Retrieve extension of file name.
Ext = StrReverse(Split(StrReverse(Address),Dot)(0))
' Build full path for downloaded file.
Path = Folder & CStr(Id) & Dot & Ext
If DownloadFile(Address,Path) = NoError Then
Result = Path
End If
End If
UrlContent = Result
End Function
完整的代码,文档和演示可以在我的项目VBA.PictureUrl中找到。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。