Как вызвать клик в форме доступа к базе данных из кода Excel VBA - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь вызвать нажатие кнопки «ОК» формы в базе данных Access из кода VBA в Excel.

Основная идея заключается в следующем.Код VBA в Excel проходит следующие шаги:

  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 ]

1 голос
/ 25 апреля 2019

Благодаря Van Ng и SunKnight0 я нашел проблему!Как правильно указал SunKnight0, проблема заключалась в частном определении клика, а не в общедоступном.Это прекрасно работает сейчас.Спасибо за ваш вклад.

0 голосов
/ 25 апреля 2019

Вы должны вызвать объектную модель формы, что означает следующий синтаксис:

.Forms![Subscriptions_Redemptions].ButtonName_Click

Где ButtonName - это имя объекта управления кнопкой, которое можно указать в окне свойств или при просмотреобработчик событий

...