Требуется объект - ошибка 424 MS ACCESS 2010

Я действительно новичок в VBA, но у меня есть тот же код в другой базе данных, и теперь я только что скопировал код и вставил в другую базу данных, но в последней строке я получаю эту ошибку Object Required. Код больше, но я только что остановился на строке, где появляется ошибка.

 Dim frm As Form, ctl As Control
 Dim varItm As Variant
 Dim stgMO, stgPID, stMail, stgMailCC As String
 Dim Question As Long
 Dim OutApp, OutMail As Object

 Set frm = Forms!Overview
 Set ctl = frm!cl_onboarding

 stgMO = ctl.Column(7)
 stgPID = ctl.Column(2)
 stgMail = ctl.Column(8)
 stgMailCC = ctl.Column(9)

Question = MsgBox("Do you want to send an e-mail containing the codes for this Agent?", vbYesNo, "Send e-mail")
If Question = vbYes Then

    Set OutApp = Outlook.Application

person Joao Alves    schedule 12.11.2015    source источник
comment
Что произойдет, если вы измените Set OutApp = Outlook.Application на Set OutApp = CreateObject("Outlook.Application")   -  person HansUp    schedule 12.11.2015


Ответы (2)


у вас dim stMail в качестве переменной, но затем вы используете stgMail. просто проверьте правописание.

Вы также используете dim question as long, это меня немного смущает, потому что я думал, что long означает целое число (есть минимальные и максимальные значения, но я не могу вспомнить).

person LiamH    schedule 12.11.2015
comment
Хорошо подмечено! @joao: добавьте Option Explicit в начало модуля. Однако это не вызывает ошибки Требуется объект. Это вызовет другие проблемы в будущем. - Long - 32-битное целое число со знаком. - person Andre; 12.11.2015
comment
Спасибо вам обоим. Не могу поверить, что это была орфографическая ошибка. :) - person Joao Alves; 13.05.2020

Вам необходимо установить ссылку в VBA для Outlook.

Редактор VBA -> меню Инструменты -> Ссылки

Выберите и отметьте Microsoft Outlook 14.0 Object Library

Изменить: хотя приведенное выше верно, вы, вероятно, получите другую ошибку, если бы ссылка отсутствовала.

Проблема может быть в этой строчке:

Dim OutApp, OutMail As Object

который фактически оценивается как

Dim OutApp As Variant, OutMail As Object

и должен прочитать

Dim OutApp As Object, OutMail As Object

Но Variant также может содержать объект, поэтому это также не может быть причиной ошибки.

person Andre    schedule 12.11.2015