Vba 如何在表单上显示存储在SharePoint位置的MS Access表附件或图像?

Vba 如何在表单上显示存储在SharePoint位置的MS Access表附件或图像?,vba,image,ms-access,sharepoint,office365,Vba,Image,Ms Access,Sharepoint,Office365,我正在使用Microsoft Access for Office 365为一个工作项目制作一个小游戏。我有一张表,上面有所有的答案和一张相关的图片作为附件存储。用户将通过SQL查询滚动通过记录源提供的记录 我想在用户导航时显示与每条记录相关的图像 我更愿意将图像存储在其他地方,但并非所有预期用户都可以访问公共网络文件夹。我确实可以访问公共SharePoint位置,在那里我可以将其结果上载到链接的SharePoint列表中,但当我尝试从SharePoint位置插入图像时,MS access不允许使

我正在使用Microsoft Access for Office 365为一个工作项目制作一个小游戏。我有一张表,上面有所有的答案和一张相关的图片作为附件存储。用户将通过SQL查询滚动通过记录源提供的记录

我想在用户导航时显示与每条记录相关的图像

我更愿意将图像存储在其他地方,但并非所有预期用户都可以访问公共网络文件夹。我确实可以访问公共SharePoint位置,在那里我可以将其结果上载到链接的SharePoint列表中,但当我尝试从SharePoint位置插入图像时,MS access不允许使用“web地址”

在测试中,我使用VBA通过子窗体上的Picture属性将图像(托管在网络文件夹中)显示为背景,但由于并非所有用户都可以访问公共网络文件夹,因此我无法在生产中执行此操作。(创建此文件夹后发现没有公用文件夹。)

如何在附件中显示该图片

如何使用SharePoint托管图像

使用“开箱即用”MS Access是否可以实现这两种功能


编辑:使用.accdr格式以防止用户查看表格中的答案

由于您将拥有指向图片的URL,您可以使用my fancy函数UrlContent:

”将(图片)文件从超链接字段的URL下载到
“(临时)文件夹,并返回下载文件的完整路径。
'
'这可以用作绑定图片控件的控制源。
'如果未指定文件夹,则使用用户的IE缓存文件夹。
'
'记录源中Id为的窗体或报表的典型用法
'唯一ID和Url是将Url保存到的超链接字段
'要显示的图片文件:
'
“-指向未使用参数Id的缓存文件:
'
'选择*,UrlContent(0,[Url])作为来自SomeTable的路径;
'
'-或,其中Id用于创建本地文件名:
'
'选择*,UrlContent([Id],[Url],“d:\somefolder”)作为来自SomeTable的路径;
'
'然后,将绑定图片控件的ControlSource设置为:Path
'
' 2017-05-28. 古斯塔夫·布罗克,仙人掌数据ApS,CPH。
'
公共功能内容(_
ByVal Id,只要_
ByVal Url作为字符串_
可选的ByVal文件夹(作为字符串)_
作为变体
当长度=0时,常数无错误
常量点为字符串=”
常量反斜杠为String=“\”
作为字符串的Dim地址
Dim Ext作为字符串
将路径设置为字符串
将结果变暗为字符串
'从URL字符串中删除前导和尾随的八进制字符。
地址=HyperlinkPart(Url,acAddress)
'若地址是长度为零的字符串,那个么Url并没有用八进制字符包装。
如果地址=“那么
'按原样使用Url。
地址=Url
如果结束
如果文件夹=”,则
'导入到IE缓存。
结果=下载缓存文件(地址)
其他的
如果右(文件夹,1)反斜杠,则
'附加反斜杠。
文件夹=文件夹&反斜杠
如果结束
'检索文件名的扩展名。
Ext=StrReverse(拆分(StrReverse(地址),Dot)(0))
'为下载的文件生成完整路径。
路径=文件夹&CStr(Id)&Dot&Ext
如果下载文件(地址、路径)=无错误,则
结果=路径
如果结束
如果结束
UrlContent=结果
端函数

完整的代码、文档和演示可以在我的项目中找到。

回顾感谢您的回复。“DownloadCacheFile”和“DownloadFile”是我可以在Access中指向的参考库的一部分,还是您开发的这些附加功能?它们来自链接存储库的模块Internet.bas。您可以简单地将模块包括/导入到您的应用程序中。这是一个完美的答案。非常感谢。