我们公司有一个基于网络的员工目录,我试图从Access 2013桌面数据库应用程序链接到该目录。用户个人资料的链接如下所示:https://mysite.example.com?Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0
当我直接在浏览器(IE9)中访问该URL时,我会自动进行身份验证并重定向到该用户的个人资料。当我在桌面上创建URL超链接并启动它时,IE9启动,我被重定向到该用户的配置文件。当我将Excel单元格的值设置为该URL并单击生成的超链接时,会出现相同的行为。当我在Word中单击该超链接时,再次出现相同的行为。
如果您在访问表单中嵌入Web浏览器控件并将其URI设置为所需位置,即使随后在用户的外部浏览器中打开该链接,该链接也会起作用。我偶然发现了这个怪癖。
问题是当我从Access应用程序创建指向该URL的超链接并单击它时,IE9启动并访问该URL,但是我收到以下错误消息:
There was a problem accessing the site. Try to browse to the site again.
If the problem persists, contact the administrator of this site and provide the reference number to identify the problem.
Reference number: dc40e099-a58d-472d-b187-ac162d399e28
似乎是来自IIS(Microsoft Internet信息服务框架)的标准身份验证错误。
使用Access VBA中的FollowHyperlink功能时遇到同样的问题。
我能够解决此问题的唯一方法是在我的元素的Shell "explorer " & Chr(34) & "https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0" & Chr(34)
方法上使用VBA命令:Click
,但该元素的行为不应像本机超链接那样(不自动)超链接样式,没有“手”光标等),我也非常好奇为什么Access'超链接的行为与其他Windows / Office超链接的行为有很大不同。
有什么想法吗?
答案 0 :(得分:2)
由于缺乏问题根本原因的真正解决方案(Access'中断会话处理),我已经开始使用一种解决方法,该方法与Access的本机超链接紧密(但不完全相同)。
我将标签控件的Hyperlink Address
属性从https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0
更改为(单个空格)。空间在那里,以便标签看起来是超链接,但在点击时不会将用户重定向到URI
然后我将标签的OnClick
事件设置为VBA子例程。该子例程包含以下代码:Shell "explorer " & Chr(34) & "https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0" & Chr(34)
。这行代码在资源管理器中打开链接,该链接应在用户的默认浏览器中打开超链接。
单击此链接后,该链接将打开浏览器并在身份验证后重定向到所需的页面。此解决方法有效,因为它绕过Access的默认超链接重定向,其中包含损坏的会话处理。我鼓励Microsoft的Access团队尽快调查此问题。
此外,通过设置控件的ControlTip Text
属性(在“其他”选项卡中),您可以设置悬停工具提示以显示目标URL,就像真正的超链接一样(或者如果您这样做,则显示一些其他描述性文本)愿望)。
结果是一个组件,其外观,感觉和行为类似于超链接,但不是超链接。希望微软很快就能解决这个问题,所以这不是必要的,但目前它还是很有效。