Problem automating Outlook 2007 in VB6

  • Thread starter Thread starter Norm
  • Start date Start date
N

Norm

Hi,

I thought I would try this question here since VBA is very similar to VB6.

I have the following code, which worked find in previous versions of Office
and Outlook so I am assuming Office 2007 is having a problem with resolving
email address. On these two lines I am getting just an object or application
defined error, but no explanation of what the error is.

oMail.Recipients.ADD MyReport

bCheck = oMail.Recipients.ResolveAll

objEmail and oMail are dim'ed as objects, while bCheck is boolean.

Code:

Set objEmail = CreateObject("Outlook.Application")

Do

Set oMail = objEmail.CreateItem(olMailItem)

bCheck = False

sPath = CStr(i)

MyReport = sGetINI(sIniPath, "Path", sPath, Default)

If MyReport = "" Or MyReport = "0" Then Exit Do

oMail.Recipients.ADD MyReport 'First error generated here

bCheck = oMail.Recipients.ResolveAll 'This line will also generate
an error

If Not bCheck Then

AllReports2 = MyPath2 & MyReport

MyPath2 = AllReports2 & ";"

GoTo Skip

End If

AllReports = MyPath & MyReport

MyPath = AllReports & ";"

Skip:

Set oMail = Nothing

i = (i + 1)

Loop




--
Norm

Don't blame me, my programming is
self-taught and my teacher was not
very experienced. :-)

normfowler_don't (e-mail address removed)
 
There shouldn't be any problem in adding recipients using the
Recipients.Add() function, although best practice would be to set a
Recipient object to the return value of that function. I've done it many
times in VB6 code in Outlook 2007 with no errors.

Are you positive that MyReport is actually a valid email address or a name
that will resolve to a valid contact or global address list entry?

Does it make a difference if you early bind those Object declarations as the
actual types (oMail as MailItem and objEmail as Outlook.Application)?
 
Ken,

Thanks for the information, I did get it to work, by the early binding and
also by using objOut.Session.Logon when Outlook is not already open.

Norm
 
Standalone code then, not Outlook VBA or an addin. You could now go back to
using late bound Objects if you wanted with .Logon being used, although
early bound objects provide intellisense and are faster.
 
Back
Top