Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Класс
 
 автор: час   (28.01.2007 в 10:41)   личное сообщение
 
 

пытаюсь работать с почтой
в модулях лежит класс (clsMAPIEmail) для работы с почтой -(скачал)
при обработке процедуры...
Sub TestMAPIEmail()

Dim clMAPI As clsMAPIEmail
    Set clMAPI = New clsMAPIEmail  - (object variable or With block variable not set)
    
With clMAPI
        .MAPILogon
        .MAPIAddMessage
может класс надо как-то зарегистрировать?

  Ответить  
 
 автор: Bellerofont   (28.01.2007 в 11:43)   личное сообщение
 
 

clsMAPIEmail находится в той же базе, что и TestMAPIEmail?
Является ли clsMAPIEmail модулем класса? Или это просто стандартный модуль?

Добавить модуль класса вы можете в VBE, используя меню Insert - Class Module

  Ответить  
 
 автор: ДрЮня   (28.01.2007 в 11:45)   личное сообщение
 
 

Вы создаете экземпляр класса, предварительно не объявив его
надо в самом начале модуля написать что-то типа:

Private mc1First As Class1

  Ответить  
 
 автор: Bellerofont   (28.01.2007 в 11:52)   личное сообщение
 
 

>Вы создаете экземпляр класса, предварительно не объявив его
>надо в самом начале модуля написать что-то типа:
>
>Private mc1First As Class1
Это совсем необязательно.
Если экземпляр класса нужен только в процедуре, то зачем определять его в разделе описаний модуля ?
Причина ошибки не в этом.

  Ответить  
 
 автор: Йожык   (28.01.2007 в 12:29)   личное сообщение
 
 

>в модулях лежит класс

Наиболее простой вопрос может быть наиболее верным.
Он лежит в модулях как модуль?
Или он лежит в модулях как класс?

  Ответить  
 
 автор: Bellerofont   (28.01.2007 в 13:00)   личное сообщение
 
 

Я тоже об этом спросил (на всякий случай :-)), но при этом должна быть ошибка компиляции "A module is not a valid type" и место ошибки было бы уже раньше - на строке
Dim clMAPI As clsMAPIEmail

Вполне вероятно, что ошибка возникает в процедуре инициализации самого модуля clsMAPIEmail. Где его можно посмотреть?

  Ответить  
 
 автор: час   (29.01.2007 в 10:19)   личное сообщение
 
 

он лежит в модулях как класс
с соответсвующей "иконкой", пиктограммой
вощем - класс.

  Ответить  
 
 автор: Bellerofont   (29.01.2007 в 10:23)   личное сообщение
 
 

>вощем - класс.
я так и думал, сказал же, что спросил на всякий случай :-)
Приведите код процедуры Class_Initialize вашего класса .

  Ответить  
 
 автор: час   (29.01.2007 в 10:26)   личное сообщение
 
 

извиняюся, но он на домашнем компе...
а я в офисе на работе...

  Ответить  
 
 автор: Explorer   (29.01.2007 в 10:28)   личное сообщение
 
 

>вощем - класс.

вощем нужно смотреть что за класс,

сообщение об ошибке может быть инициировано самим классом а не процедурой его вызова.

может вы не передаете какой-то обязательный параметр переменной класса, может еще что

закомментируйте все строки в классе или создайте пустой скласс с таким именем и безобидными вызовами в нем (типа мессидж боксов) и попробуйте запустить.

  Ответить  
 
 автор: час   (29.01.2007 в 10:36)   личное сообщение
 
 

Хорошо
Спасибо попробую

  Ответить  
 
 автор: час   (01.02.2007 в 10:12)   личное сообщение
 
 

CDO.DLL не зарегистрирована оказываться...
Можа теперя попрёт...

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList