访问 - 超链接不链接

时间:2014-02-05 15:33:33

标签: ms-access hyperlink access-vba transform

我有一个带有用户创建函数的表单(请参见此处的函数:Adding a file browser button to a MS Access form)将文件夹路径名称拉入文本框。

理想情况下,我希望此文本成为可以从查询中打开的超链接。但是,对于我从表单添加的所有记录,超链接不起作用。我查看了“编辑超链接”的记录,没有地址。此外,我在制作表单之前手动输入了一些记录,并且通过将文件夹路径名称粘贴到单元格中,它们的超链接工作得很好,现在仍可正常工作。

我认为问题在于我正在使用的函数返回一个普通的字符串,有没有办法在表格中将它转换为工作的超链接?

2 个答案:

答案 0 :(得分:3)

粗略地说,功能性Access Hyperlink字段值是一个字符串,其中包含“超链接部分”之间的#个字符。 (请参阅访问' Application.HyperlinkPart方法帮助主题。)

例如,此DLookup返回所存储的值,其被显示为 AccessApps 的链接和链接到我的 C:\用户\汉斯\ AccessApps 文件夹。

? DLookup("url", "tblFoo", "id=1")
AccessApps#C:\Users\hans\AccessApps#

但是,如果我只存储包含文件夹路径的字符串...

CurrentDb.Execute "UPDATE tblFoo " & _
    "SET url='C:\Users\hans\AccessApps' " & _
    "WHERE id=4"

......字符串确实存储了......

? DLookup("url", "tblFoo", "id=4")
C:\Users\hans\AccessApps

...但由于它不包含#个字符,因此Access不会将其视为可点击的超链接。这只是看起来的文本,就像链接一样,但点击它什么都不做。

同时,您似乎正在使用名为FolderSelection()的函数来选择文件夹路径字符串。如果要将函数的返回值存储为超链接,则可以在之前和之后包含#个字符。

"#" & FolderSelection() & "#"

如果您希望将文件夹路径作为链接但将其显示为其他内容,请将显示部分放在第一个#之前。

"Click Me!#" & FolderSelection() & "#"

答案 1 :(得分:1)

完美,它完全符合我的要求!对于任何感兴趣的人,这里是编辑的代码:

Private Sub Command26_Click()
Dim strChoice As String
strChoice = FolderSelection
If Len(strChoice) > 0 Then
    Me.Photo_Location = "#" & strChoice & "#"
    ' the "#" & additions around strChoice above complete the hyperlink
Else
    ' what should happen if user cancelled selection?
End If
End Sub

我猜#字符本来可以放在其他地方,但我是新手!