【发布时间】:2018-09-24 23:17:26
【问题描述】:
我制作了一个表格,用作网络上受控文档的跨部门签核表。该数据库已经包含一个表格,其中包含每个文档位置的超链接字段。该表还有一个文档 ID 的文本字段。我的表单将其信息存储在另一个表中,但我希望我仍然可以使用第一个表中的超链接,而不是在第二个表中创建新链接。
我的谷歌搜索将我带到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 不喜欢超链接字段,因为我可以很好地提取其他字段。我错过了什么?或者有没有更好的方法来引用不同表中的超链接?
【问题讨论】:
-
引用您的 dlookup 中的表格
FollowHyperlink DLookup("[tableName]![Document_ID]", "Documents", "[tableName]![Document_ID]= '" & Me.DocumentID.Value & "'") -
我仍然收到同样的错误,刚才它显示 [Documents]![Document_ID]。 (Documents 是表的名称。)
-
如果您的
Documents表不包含名为Document_ID的字段,则可能会发生2471 错误如果您使用以下表达式进行测试,Access 将如何响应? ...Debug.Print DLookup("Document_ID", "Documents") -
@HansUp,Debug.Print 行出现同样的错误。肯定有一个具有该名称的字段,我在 Me.DocumentID 中测试的值有效,我可以将表过滤为该值,并且超链接从表中有效。
-
只是为了仔细检查 Document_ID 不是 出于某种原因的名称,我打开了一个使用 Documents 表并具有超链接字段控件的表单。控制源显示“Document_ID”,因此该名称应该有效。