你好 StackOverflow 社区,
我刚刚开始遇到存储在 MS-Access 表中的超链接未按预期运行的问题。
我有一个小型数据库,除其他外,它记录了指向公司 Sharepoint 网站上托管的文档的链接。直到几天前,数据库和超链接都运行良好。
出于某种原因,在过去的几天里,每当我(或我的任何用户)通过 Access 表单单击这些超链接(或者我直接从表格中单击)时,我都会遇到奇怪的行为:
单击该链接会根据需要打开默认浏览器的新实例。该浏览器确实导航到公司的 Sharepoint 网站。但是没有一个链接实际上打开了它们打算指向的特定文档。
相反,所有链接都会在 Sharepoint 站点中显示一个通用文件/文件夹菜单。就好像这些链接指向现有文件夹中不存在的文件一样。
非常奇怪的部分是,如果我“编辑”我的数据库中的任何超链接,并简单地从编辑超链接窗口中选择并复制“地址”文本,我总是会立即拉出正确的所需文档,如果只是粘贴地址直接进入新的浏览器窗口。
我会认为这种类型的剪切/粘贴必然等同于单击链接。但显然情况并非如此。
我觉得我可以安全地排除对 Sharepoint 网站本身的任何更改都会导致我在单击链接时出现问题的可能性(否则剪切/粘贴地址不会显示正确的文档),但我必须承认我我很困惑为什么只单击直接用于工作的超链接,但不再这样做了。
我不相信有任何代码或其他相关信息可能对我有帮助而我忽略了,但如果有人对这里可能发生的事情有任何想法,我会渴望提供任何澄清/等。
提前感谢您的任何想法或建议!~JQN
- 编辑:我已经删除了这个问题,因为上述问题已经停止发生。我无法解释原因,但在发布原始帖子的一两天内的某个时间点后,我也无法再次重现该问题。
从那以后,这个问题又回来了。我已经能够确定以下内容:
正如我在下面的注释中所描述的,当我遇到这种奇怪的链接行为时,我没有收到来自 MS-Access 的标准警告,表明超链接可能有害等。
奇怪的是,只需打开一个文件对话框/文件选择器,然后通过该对话框导航到(同步的)Sharepoint 站点上的任何位置,似乎就可以解决问题。我不需要实际选择或打开 Sharepoint 上的任何位置,只需在同步的文件夹结构中导航似乎就可以了。
一旦发生这种情况,所有链接都会再次按预期运行(即它们直接打开正确的链接文件,而不是登陆根文件夹页面)。它们也会返回 MS-Access 超链接警告。文件/链接行为将保持该状态数天。我估计,只有在文件对话框上次运行后一周或更长时间不活动之后,问题才会返回。
- 进一步编辑:新的更新......时间已经过去,问题再次出现。正如怀疑的那样,Sharepoint 之外的页面链接不受影响,并且按预期打开,没有问题。再一次,标准的 Microsoft 超链接警告对话框没有出现任何链接。
显然,既然我已经找到了文件对话框的解决方法,那么当它出现时我很容易解决这个问题。不过,我希望这能给某人敲响警钟,也许你们中的一个人可以为我指出正确的方向,以便为我的用户提供更完整的修复。
再次感谢您对此的任何帮助!
- 另一个编辑:好的....根据我在过去几周中学到的所有东西(如本文和下面的评论中所捕获),我正要删除这个问题并将其重新发布为“为什么 Sharepoint 会从 MS-Access 重定向我的 URL 请求?” 当我试图搜索论坛以确保尚未提出该问题时,我偶然发现了一些我认为可以解决潜在问题的信息:
看起来这与 Office 处理 URL 请求的(非常不透明的)方式有关。它显然不是简单地在指定链接处打开文档,它首先通过发送“Microsoft Office 协议发现”请求来“预测试”(我想这是正确的词)URL。
显然,Sharepoint 可能以某种方式不喜欢该 MOPD 请求的细节,如果发生这种情况,Sharepoint 将重定向到文件目录页面——并且该目录页面最终在浏览器中打开,而不是预期的链接/文档。
同样,这只有时会发生,有时不会发生。当它确实发生时,我发现了一个笨拙的解决方法,可以在大约一周左右的时间内纠正这个问题。在那一周内我无法重现该问题,我只需要等待解决方法到期(我显然不完全理解为什么我笨拙的解决方法有效)。
似乎不可能操纵 MOPD 请求的细节。如果可能的话,我希望能够完全免除 MOPD,因为我希望通过 Access 链接到的所有文件无论如何都以只读方式打开。不幸的是,我认为这也不可能。
我在另一个 SO 线程HERE中找到了一些关于此的信息。我还没有完全准备好提交这个问题的答案,但我对什么样的事情可以作为可接受的解决方法有一些想法。
如果有人对我如何能够按需重现问题有任何想法,而不是简单地再等一周让任何密钥/cookies/settings/etc 再次过期,这将是有帮助的。如果可能的话,我需要完全在访问端实现任何可能的解决方案,而不是在 Sharepoint/服务器端。再次感谢您的任何建议!