【问题标题】:Hyperlinks (to Sharepoint) in MS-Access tables not behaving as expectedMS-Access 表中的超链接(到 Sharepoint)未按预期运行
【发布时间】:2015-10-23 23:24:34
【问题描述】:

你好 StackOverflow 社区,

我刚开始遇到存储在 MS-Access 表中的超链接不符合预期的问题。

我有一个小型数据库,其中记录了指向公司 Sharepoint 网站上托管的文档的链接。直到几天前,数据库和超链接都运行良好。

由于某种原因,在过去的几天里,每当我(或我的任何用户)通过 Access 表单单击这些超链接(或者我直接从表格中单击)时,我都会出现奇怪的行为:

单击链接会根据需要打开默认浏览器的新实例。该浏览器确实导航到公司的 Sharepoint 网站。但实际上没有一个链接会打开它们要指向的特定文档。

相反,所有链接都会在 Sharepoint 站点中显示一个通用文件/文件夹菜单。就好像这些链接指向现有文件夹中不存在的文件。

非常奇怪的部分是,如果我“编辑”数据库中的任何超链接,并简单地从编辑超链接窗口中选择并复制“地址”文本,我总是会立即拉出正确的所需文档,如果只需将地址直接粘贴到新的浏览器窗口中即可。

我原以为这种剪切/粘贴方式必然等同于单击链接。但显然不是这样的。

我觉得我可以安全地排除对 Sharepoint 网站本身的任何更改都会导致我在单击链接时出现问题的可能性(否则剪切/粘贴地址不会显示正确的文档),但我有承认我只是对为什么只点击直接用于工作的超链接感到困惑,但现在不再这样做了。

我不认为有任何代码或其他相关信息可能对我有帮助而我忽略了,但如果有人对这里可能发生的事情有任何想法,我会渴望提供任何澄清/等。

提前感谢您的任何想法或建议! ~JQN


  • 编辑:我删除了这个问题,因为上述问题已经停止发生。我无法解释原因,但在发布原始帖子的一两天内的某个时间点后,我也无法再次重现该问题。

从那以后,问题又回来了。我已经能够确定以下内容:

  • 正如我在下面的注释中所述,当我遇到这种奇怪的链接行为时,我没有收到来自 MS-Access 的标准警告,表明超链接可能有害,等等。

  • 奇怪的是,只需打开一个文件对话框/文件选择器,然后通过该对话框导航到(同步的)Sharepoint 站点上的任何位置,问题似乎就消失了。我不需要实际选择或打开 Sharepoint 上的任何位置,只需在同步的文件夹结构中导航似乎就可以了。

  • 一旦发生这种情况,所有链接都会再次按预期运行(即它们直接打开正确的链接文件,而不是登陆根文件夹页面)。它们也会返回 MS-Access 超链接警告。文件/链接行为将保持该状态数天。我估计,只有在文件对话框上次运行后一周或更长时间不活动之后,问题才会返回。

    • 进一步编辑:新更新...时间已过,问题再次出现。正如怀疑的那样,Sharepoint 之外的页面链接不受影响,并且按预期打开,没有问题。再一次,标准的 Microsoft 超链接警告对话框没有出现任何链接。

显然,既然我已经找到了文件对话框的解决方法,那么当它出现时我很容易解决它。不过,我希望这能给某人敲响警钟,也许你们中的某个人可以为我指明正确的方向,以便为我的用户提供更完整的解决方案。

再次感谢您对此的任何帮助!

  • 另一个编辑:好的....根据我在过去几周学到的所有东西(如本文和下面的 cmets 中所捕获),我正要删除这个问题并重新发布它是“为什么 Sharepoint 会从 MS-Access 重定向我的 URL 请求?”当我尝试搜索论坛以确保尚未提出 那个 问题时,我偶然发现了一些我认为可以解决根本问题的信息:

看起来这与 Office 处理 URL 请求的(非常不透明的)方式有关。它显然不是简单地在指定链接打开文档,它首先通过发送“Microsoft Office 协议发现”请求来“预测试”(我想这是正确的词)URL。

显然,Sharepoint 可能不喜欢该 MOPD 请求的细节,如果发生这种情况,Sharepoint 会重定向到文件目录页面——该目录页面最终会在浏览器中打开,而不是预期的链接/文档。

同样,这种情况只会在某些时候发生,而在其他情况下不会发生。当它确实发生时,我发现了一个笨拙的解决方法,可以在大约一周左右的时间内纠正这个问题。在那一周内我无法重现该问题,我只需要等待解决方法到期(我显然不完全理解为什么我笨拙的解决方法有效)。

似乎无法操纵 MOPD 请求的详细信息。如果可能的话,我希望能够完全放弃 MOPD,因为我希望我通过 Access 链接到的所有文件都以只读方式打开。不幸的是,我也不认为这是可能的。

我在另一个 SO 线程 HERE 中找到了一些相关信息。我还没有完全准备好提交这个问题的答案,但我对什么样的事情可以作为可接受的解决方法有一些想法。

如果有人对我如何能够按需重现问题有任何想法,而不是简单地再等一周让任何密钥/cookies/settings/etc 再次过期,那将会很有帮助。 如果可能的话,我需要完全在 Access 端实现任何可能的解决方案,而不是在 Sharepoint/服务器端。再次感谢您的任何建议!

【问题讨论】:

  • 小但可能有用的更新...我还应该提到,从 Access 打开链接通常会从 MS-Office 中弹出一个警告窗口(来自不可靠来源的链接可能很糟糕,你确定你想要打开此链接等)。但是,这也很奇怪,目前还没有发生。这似乎很可能与链接无法正常运行的问题有关。
  • 当您点击超链接时,它打开的地址是否与您直接从表中复制时相同?...您可以发布一些示例 h.links
  • @krishKM 所有涉及的链接都位于访问受控的 SharePoint 网站后面。我确实相信数据库中的链接从 Sharepoint 请求的链接与我在剪切和粘贴时获得的链接相同,但由于某种原因,这些链接没有落在正确的位置(直到并且除非我执行所描述的文件对话框操作在对上述 OP 的编辑中)。
  • 默认浏览器是哪个?如果您将默认设置切换到不同的浏览器,您会发现有什么不同吗?
  • 我希望我早先尝试过的一件事是在 Access 中包含一个指向随机选择的公共站点的链接(即,不在 Sharepoitn 后面的 URL登录)。我的strong怀疑是这些链接会正常运行,即使其他链接没有。但我不确定这一点,而且我还没有找到重现该问题的方法,只需等待一周的 Access-Sharepoint 链接(显然)重置。我认为,这将是另一种方式来确定上述 Krish 问题的答案是什么。

标签: ms-access sharepoint hyperlink ms-office autodiscovery


【解决方案1】:

我现在将其作为答案发布,但在我有机会验证它确实有效之前会避免接受它。

我正在插入一些将在数据库启动时运行的代码。它将打开一个(不可见的)表单,其中包含一个 Access WebBrowser 控件。我将让该控件导航到 Sharepoint 站点上的特定文件。我相信实际上是这个操作导致链接问题在一周内得到解决。

此表单将在后台静默运行,导航到共享点文件位置,然后关闭。这应该有望刷新链接正常工作时存在的 MODP 请求的任何特征(并且在它们不正常工作时不存在)。

本质上,我希望这种方法能够重置我(大约)一周的所需链接功能窗口,以便在每次打开数据库时重新启动。换句话说,我认为这会起作用,尽管我仍然不完全理解为什么。

祝我好运!

;)

【讨论】:

  • 这似乎有效。我接受了这个答案,尽管它显然不够优雅,并且仍然没有解决实际问题的根本原因。它似乎是一种实用的解决方法,即使是笨拙的。
猜你喜欢
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多