Ms access Access DB Report:使用按钮可单击文件位置

Ms access Access DB Report:使用按钮可单击文件位置,ms-access,button,vba,report,file-link,Ms Access,Button,Vba,Report,File Link,我正在尝试为我的按钮写一些代码:“打开”。如果单击,将自动打开具有该“文件地址”的文件: 我有以下VBA函数,它将文件位置作为输入字符串。我的问题是,我如何引用C:。。。在“文件位置”列中链接到函数的输入?我的意思是,这不起作用(但是如果我注释掉函数,并取消注释sub,我会弹出一个窗口说Hi!): 那么我该怎么做呢?删除声明和设置strurlink的两行代码 您可以从按钮单击事件调用该函数 Private Sub Command35_Click() x = OpenDocument(Me![

我正在尝试为我的按钮写一些代码:“打开”。如果单击,将自动打开具有该“文件地址”的文件:

我有以下VBA函数,它将文件位置作为输入字符串。我的问题是,我如何引用C:。。。在“文件位置”列中链接到函数的输入?我的意思是,这不起作用(但是如果我注释掉函数,并取消注释sub,我会弹出一个窗口说Hi!):


那么我该怎么做呢?

删除声明和设置strurlink的两行代码

您可以从按钮单击事件调用该函数

Private Sub Command35_Click()
x = OpenDocument(Me![File Location])
End Sub
然而,它实际上不需要是一个函数,可以是一个子函数

为什么不直接在按钮点击事件中

Private Sub Command35_Click()
    On Error GoTo Catch
    Application.FollowHyperlink(Me![File Location])
    Exit Sub
Catch:
    MsgBox "Oops! Can't open file"
End Sub

这不是宏代码,而是VBA。Access中的宏编码非常不同。

它可以工作!!!各位,这就是为什么:

单击设计视图中的“打开”按钮。在属性页中,选择[Event Procedure],然后单击“…”进入一个窗口,您可以在其中编写VBA代码。确保以下两个红色框中的字符串如下所示匹配:

请注意,字符串“Main_File Location”应该是您在引用此报表的表中设置的确切列名


另外,确保文件名显示了文件的类型。例如,如果您的文件名是myfile1,这是一个PNG文件,那么您的文件位置必须是:C:\somepath\myfile1.PNG。如果是excel:C:\somepath\myfile1.xlsx。或者,Sub无法打开文档。

请添加真实代码,图片没有帮助@June7嘿,谢谢。我尝试了以下操作:
Private Sub Command35\u Click()On Error GoTo Catch Application.FollowHyperlink([Reports]![Search Report]![File Location])单击按钮后退出Sub Catch MsgBox“Oops!无法打开文件”结束Sub
:编译错误:未定义Sub或函数。但是,在我注释掉Msgbox上面的4行并再次单击按钮后,Msgbox弹出。想法?哎呀,我应该抓住这个。使用
Catch:
。见修改后的答案。另外,您不需要reports类和report name引用前缀。@June7是的,现在错误消失了。我尝试了这三种方法:1)你的方法:
Application.FollowHyperlink(我![File Location])
2)从报告获取:
Application.FollowHyperlink([Reports]![Search report]![File Location])
3)从表获取
Application.FollowHyperlink([Tables]![Main Document]![Main\u File Location])
。这三个都给了我同样的弹出窗口:“哎呀!无法打开文件“。。。所以我的表中名为“Main Document”的列名实际上是“Main_File Location”…您没有尝试没有表单名称前缀的代码,正如我在使用Me别名的示例中所示。当然不能参考表格。这个函数适合我。用静态文件路径和名称而不是变量引用来测试它。@June7谢谢它能工作!!请看下面我对自己帖子的回答:)我确实试过你的方法。这是我在上述三种方法中第一次尝试。关于文件路径的事情你是对的,但这不是关于变量引用。我昨天重新定位了文件夹:P。。。再次感谢~