【问题标题】:How to open a URL from MS Access with parameters如何使用参数从 MS Access 打开 URL
【发布时间】:2016-11-07 09:51:15
【问题描述】:

我有一个基本的 MS Access 应用程序,它在表单上有一个按钮,应该打开一个以 Access 记录的 ID 作为参数的网页,但我尝试的所有操作都导致 Access 出错或只有基本 URL在网页中打开。

我已经尝试将 VBA 添加到按钮的单击事件中:

Application.FollowHyperlink _ 
"http://example.com/index.php?r=controller/action&id=" & Me.ID 

但我得到的只是在网络浏览器上打开的基本 URL(即http://example.com)。如果我删除“?”以及完整 URL 中的“&”按钮将打开浏览器,完整 URL 减去“?”和'&',这当然会使页面出错。

我尝试将超链接控件的属性设置为:

="http://example.com/index.php?r=controller/action&id=" & Me.ID

但它的作用与上述相同。

我尝试创建一个具有相同结果的宏。我尝试使用超链接生成器并使用[formName]![id] 作为参数,但同样的事情发生或访问错误。

我已经阅读了这篇文章:https://msdn.microsoft.com/en-us/library/office/ff822080.aspx 并尝试将 URl 中 'index.php/ 之后的部分添加到代码中的 ExtraInfo 位置,但同样的事情。

帮助!简单地让 Access 打开一个 URL 末尾带有参数的 URL 并不是那么难。

【问题讨论】:

  • 你不能简单地创建一个这样的字符串:str_url = "http://example.com/index.php?r=controller/action&id=" & Me.ID,然后从 Application.FollowHyperlink 打开它吗?它应该可以工作。
  • 绝对应该这么简单,但这是我们正在谈论的微软,不,那是行不通的。不过还是谢谢。

标签: vba ms-access url


【解决方案1】:

Application.FollowHyperlink 善变。

使用ShellExecute:
Open an html page in default browser with VBA?

CreateObject("Shell.Application").Open "http://example.com/index.php?r=controller/action&id=" & Me.ID 

https://stackoverflow.com/a/18922262/3820271


如果 URL 在字符串变量中,您可能需要将其转换为 Variant,因为这是 Shell.Application.Open 所期望的:

strUrl = "http://example.com/index.php?r=controller/action&id=" & Me.ID
CreateObject("Shell.Application").Open CVar(strUrl)

请参阅 https://stackoverflow.com/a/56173911/3820271,感谢 Toby 和 Anthony 指出这一点!

【讨论】:

  • 行得通!!!太感谢了!我只是将上面的代码行添加到按钮的单击事件中,它就可以正常打开。一定要喜欢微软的简单
  • 如果您遇到此问题无法正常工作,请尝试将其与@TobyOvod-Evertt 建议结合使用。
【解决方案2】:

请注意,如果您遇到 CreateObject("Shell.Application").Open 无法使用变量的问题,则可能是转换问题 - 尝试在参数周围添加 CVar()。详情请见https://stackoverflow.com/a/56173911/8512931

【讨论】:

  • 我开始注销已接受的答案,因为在我尝试此操作之前无法正常工作,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多