我制作了一个表格,用作网络上受控文档的部门间签核单。该数据库已经包含一个表,该表具有每个文档位置的超链接字段。该表还具有文档ID的文本字段。我的表单将其信息存储在另一个表中,但是我希望我仍然可以使用第一个表中的超链接,而不是在第二个表中创建新链接。
我的Google搜索使我进入this forum post,该站点使用FollowHyperlink和DLookup展示了一行:
Application.FollowHyperlink DLookup("Document_ID", "Documents", "Document_ID = '" & Me.DocumentID.Value & "'")
Document_ID是保存超链接的字段。
Me.DocumentID是用户键入的文本框,单击此字段时代码将运行。
我尝试了代码的多种变体,包括使用超链接字段或标准条件的文本字段将表字段包装在方括号“ []”中,使用Like代替=(以及Me.DocumentID周围的星号)。所有这些都会导致运行时错误2471:
您作为查询参数输入的表达式产生此错误: 'Document_ID'
这让我觉得Dlookup不喜欢超链接字段,因为我可以拉其他字段。我想念什么?还是有更好的方法来引用不同表中的超链接?
答案 0 :(得分:0)
感谢HansUp向我指出正确的方向。原来表中不存在“ Document_ID”。相反,超链接字段在下划线和ID(“ Document_ ID”)之间留有一个空格,直到将名称从表复制到更明显的vba之前,我才意识到这一点。
在条件中使用超链接字段时,Dlookup将不起作用,因此使用了带有文档ID的文本字段,并将我的代码更改为以下内容。FollowHyperlink不会采用整个字段值(title#address)
Dim LinkText As String
LinkText = DLookup("[Document_ ID]", "Documents", "[DocID] = '" & Me.DocumentID & "'")
LinkText = Application.HyperlinkPart(LinkText, acAddress)
Application.FollowHyperlink LinkText
控件现在将打开存在的文档(现在可以处理不存在文档时使用的代码)