我有一个提供一套报告的Excel工作簿。数据来自Access数据库,ole db连接等。
我在主Excel工作表上有一个交换机类型屏幕,其中包含用于查看各种报告的按钮,以及用于打开添加新数据表单和编辑所选数据表单的按钮。我使用Excel模块中的以下代码安装了完整访问权限,在我的机器上完美地完成了所有这些工作。
Sub OpenFormAmend()
Dim ac As Object
Dim strID As String
strID = Range("IniId").Value
On Error Resume Next
Set ac = GetObject(, "Access.Application")
If ac Is Nothing Then
Set ac = GetObject("", "Access.Application")
ac.OpenCurrentDatabase "C:\Database.accdb"
ac.DoCmd.OpenForm "frm_Amend", , , "ID =" & strID
ac.UserControl = True
Set ac = Nothing
End If
AppActivate "Microsoft Access"
ac.OpenCurrentDatabase "C:\Database.accdb"
ac.DoCmd.OpenForm "frm_Amend", , , "ID =" & strID
End Sub
但是,仅在具有Access Runtime的用户计算机上完全没有做任何事情。我已经能够打开数据库,下面的代码来自类似的问题。
CreateObject("WScript.Shell").Run ("""C:\Database.accdb""")
但我不知道如何将上述内容打开到特定表单,或打开所选记录。任何有关入门的帮助将不胜感激!
答案 0 :(得分:0)
在无法返回当前正在运行的实例后,您再次调用GetObject()。你的第二个调用应该是CreateObject()。
使用On Error Resume Next在第一次GetObject调用之前是可以理解的,但你应该在之后立即打开错误报告(例如On Error Goto MyErrorHandler),否则你将不知道出了什么问题......