ms-access 超链接中#literal 的语法?

Posted

技术标签:

【中文标题】ms-access 超链接中#literal 的语法?【英文标题】:Syntax for # literal in ms-access hyperlink? 【发布时间】:2016-07-01 14:22:36 【问题描述】:

这似乎应该是一个微不足道的问题,但到目前为止,我正在为这个问题寻找答案......

我有一个访问数据库,它存储指向共享网络驱动器上文件的超链接。链接目标被指定为简单的文件路径(例如“G:\directoryname\filename.ext”)而不是正确的 URL(“http://domain.ext/link”)。

这通常可以正常工作,但我最近遇到了一个涉及包含“#”字符的文件名的问题。 (不能更改文件名以删除 # 字符)

如果我尝试设置指向“G:\directoryname\ExampleFile#24.pdf”之类的链接,则 Access 会像定义超链接时通常那样解析文件名中的 #。生成的目标只是“”G:\directoryname\ExampleFile”,而有问题的“#”后面的链接部分只是被截断了。

现在,显然如果链接目标是常规 URL,我只需将链接文本中的“#”替换为“%23”就不会出现问题。

问题是,如果我在此处执行此操作,我的网络文件操作将失败,因为与通过浏览器打开常规 URL 时不同,网络无法将 %23 识别为等同于 # (我收到一条错误消息“无法打开 G:\directoryname\ExampleFile %23 24.pdf。无法打开指定的文件。")

有没有更直接的方法让 ms-access 记录包含文字 # 字符的链接目标?

【问题讨论】:

您是如何尝试在表格中设置超链接的?直接在字段中输入? 超链接最初是通过 VBA 代码存储的。 VBA 似乎可以正确处理所有字符,因此存储在表中的链接最终会显示预期的目标(“G:\directoryname\ExampleFile#24.pdf”)。正是在这一点上,我需要通过单击表单或表格中的链接来导航到文件,而 # 以一种麻烦的方式被解析。如果我在通过 VBA 定义超链接时手动编辑超链接,我会遇到相同的行为。 # 在文件超链接中具有特殊含义,它被解释为 # 后面的所有内容都是子地址。例如。 file://C:\path\Document.docx#myBookmark 打开 Document.docx 并尝试跳转到书签“myBookmark”。但我无法帮助您解决问题。 我唯一的建议是尝试复制文件名/位置并使用“粘贴为超链接”将其粘贴到故事中。不确定它是否会起作用,但值得一试。 嗯,我确实理解它的特殊含义 :) 但它具有特殊含义的事实让我感到困惑,为什么似乎没有一种简单的方法可以在这种情况下定义一个文字“#”,就像在几乎任何其他编程/编码环境中一样。 Access 的链接处理函数的架构师真的有可能不允许 # 字面量吗?我假设我必须遗漏一些明显的东西,对吧? 【参考方案1】:

这当然对你没有帮助,但这是你的答案:

“您不能在文件名中使用井号字符作为 Office 程序中的超链接”

https://support.microsoft.com/en-us/kb/202261

【讨论】:

这似乎确实是答案。 :) 再次感谢您的帮助!

以上是关于ms-access 超链接中#literal 的语法?的主要内容,如果未能解决你的问题,请参考以下文章

无法加入备忘录、OLE 或超链接对象

MS-Access:对链接的 CSV 文件的慢查询

MS-Access 2013;根据多记录形式的记录数据更改组合框选项

如何在 ms-access VBA 中检索表的 odbc 数据库名称

我能否以编程方式启用和禁用存储在 SharePoint 中并链接到 ms-access 的 xlsx 文件的 ms-excel 文件共享/共同创作?

在 ms-access 中与 mysql 服务器的 DSN-less 连接不记得用户名和密码