如何从Excel VBA代码触发Access数据库表单中的单击

时间:2019-04-25 13:20:57

标签: excel vba ms-access access-vba

我试图通过Excel中的VBA代码触发对Access数据库中表单的“确定”按钮的点击。

主要思想如下。 Excel中的VBA代码通过以下步骤:

  1. 打开Access数据库
  2. 在此Access数据库中打开一个表单
  3. 用一些数据填充表单
  4. 触发打开的表单中的“确定”按钮单击
  5. 关闭表单
  6. 关闭Access数据库

就目前而言,该代码能够打开数据库,打开表单并向其中填充数据,但是我无法强制单击“确定”按钮。 我尝试了几种不同的类型方法:

.Forms("Subscriptions_Redemptions").Controls("OK").Click

但都不起作用...我将不胜感激。为了清楚起见,单击“确定”按钮将激活一个访问VBA代码,该代码将通过单击“事件过程”​​从数据库中的表单中分发信息。

这是代码的当前版本:

Private Sub CommandButton4_Click()
    Dim appAccess As Object

    'create new access object
    Set appAccess = CreateObject("Access.Application")

    'open the acces project
    Call appAccess.OpenCurrentDatabase( _
    "H:\PROD\HIGH_YIELD\HY_LUX\Database\HY_LUX.mdb")
    appAccess.Visible = True

    With appAccess
        Application.DisplayAlerts = False
       .DoCmd.OpenForm "Subscriptions_Redemptions"
       .Forms("Subscriptions_Redemptions").DateVal = "04/12/2019"
       .Forms("Subscriptions_Redemptions").Controls("OK").Click
    End With

    Set appAccess = Nothing
End Sub

2 个答案:

答案 0 :(得分:1)

感谢Van Ng和SunKnight0,我已经找到了问题! 正如SunKnight0正确指出的那样,问题是单击的私有定义,而不是公共的定义。现在效果很好。 感谢您的贡献。

答案 1 :(得分:0)

您应该调用表单的对象模型,这意味着以下语法:

.Forms![Subscriptions_Redemptions].ButtonName_Click

ButtonName 是按钮控件对象的名称,可以通过属性窗口或查看事件处理程序来指定