我制作了一个表格,用作网络上受控文档的部门间签核表。数据库已包含一个表,其中包含每个文档位置的超链接字段。该表还具有文档 ID 的文本字段。我的表单将其信息存储在不同的表中,但我希望我仍然可以使用第一个表中的超链接,而不是在第二个表中创建新链接。
我的谷歌搜索将我带到了这个论坛帖子,该帖子展示了使用FollowHyperlink和DLookup的一行:
Application.FollowHyperlink DLookup("Document_ID", "Documents", "Document_ID = '" & Me.DocumentID.Value & "'")
Document_ID是保存超链接的字段。
Me.DocumentID 是用户键入的文本框,单击此字段时代码将运行。
我已经尝试了多种代码变体,包括将表字段包装在括号"[]"中,使用超链接字段或文本字段作为条件,使用 Like 而不是 =(以及 Me.DocumentID 周围的星号(。所有这些都会导致运行时错误 2471:
作为查询参数输入的表达式生成此错误: "Document_ID">
这让我认为 Dlookup 不喜欢超链接字段,因为我可以很好地拉取其他字段。我错过了什么?或者有没有更好的方法来引用不同表中的超链接?
感謝 HansUp 為我指出正確的方向。事实证明,表中不存在"Document_ID"。相反,超链接字段在下划线和 ID("Document_ ID"(之间有一个空格,直到将表中的名称复制到空格更明显的 vba 中,我才抓住它。
在条件中使用超链接字段时,Dlookup 不起作用,因此改用带有文档 ID 的文本字段,并将我的代码更改为以下内容。关注超链接不会采用整个字段值(标题#地址(
Dim LinkText As String
LinkText = DLookup("[Document_ ID]", "Documents", "[DocID] = '" & Me.DocumentID & "'")
LinkText = Application.HyperlinkPart(LinkText, acAddress)
Application.FollowHyperlink LinkText
该控件现在将打开存在的文档(现在处理文档不存在时使用的代码(