【问题标题】:How to trigger a click in Access database form from Excel VBA code如何从 Excel VBA 代码触发 Access 数据库表单中的单击
【发布时间】:2019-09-14 22:40:36
【问题描述】:

我正在尝试从 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

【问题讨论】:

    标签: excel ms-access vba


    【解决方案1】:

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

    .Forms![Subscriptions_Redemptions].ButtonName_Click
    

    其中ButtonName是按钮控件对象名,可以通过属性窗口指定,也可以查看事件处理函数

    【讨论】:

    • 亲爱的 Van Ng,在发布问题之前我已经尝试过了,但我收到以下错误消息:运行时错误 '2465' 应用程序定义或对象定义错误
    • 上面的代码没有“点击”按钮,它只是执行按钮OnClick事件后面的VBA代码。因此,表单/按钮的名称/路径是错误的,或者您尚未分配要在按钮的单击事件上执行的 VBA 代码。如果从表单的 VBA 代码外部调用,您可能还需要将 Click 函数的定义从 Private 更改为 Public。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 2013-12-14
      • 2021-10-01
      • 2015-02-04
      • 2016-01-04
      • 2016-06-14
      • 2013-11-27
      相关资源
      最近更新 更多