What's wrong in my Access 2003?

H

hanski

Hi.

I have a module: (not mine, as you see)

Option Explicit

' ACCESS VBA MODULE: Send E-mail without Security Warning
' (c) 2005 Wayne Phillips (http://www.everythingaccess.com)
' Written 07/05/2005
' Last updated v1.3 - 11/11/2005
'
' Please read the full tutorial & code here:
' http://www.everythingaccess.com/tutorials.asp?ID=Outlook-Send-E-mail-without-Security-Warning
'
' Please leave the copyright notices in place - Thank you.

'This is a test function - replace the e-mail addresses with your own
before executing!!
'(CC/BCC can be blank strings, attachments string is optional)

Sub FnTestSafeSendEmail()
Dim blnSuccessful As Boolean
Dim strHTML As String

strHTML = "<html>" & _
"<body>" & _
"My <b><i>HTML</i></b> message text!" & _
"</body>" & _
"</html>"
blnSuccessful = FnSafeSendEmail("(e-mail address removed)", _
"My Message Subject", _
strHTML)

'A more complex example...
'blnSuccessful = FnSafeSendEmail("(e-mail address removed);
(e-mail address removed)", _
"My Message Subject", _
strHTML, _
"C:\MyAttachmentFile1.txt; C:
\MyAttachmentFile2.txt", _
"(e-mail address removed)", _
"(e-mail address removed)")
If blnSuccessful Then

MsgBox "E-mail message sent successfully!"

Else

MsgBox "Failed to send e-mail!"

End If

End Sub


'This is the procedure that calls the exposed Outlook VBA function...
Public Function FnSafeSendEmail(strTo As String, _
strSubject As String, _
strMessageBody As String, _
Optional strAttachmentPaths As String, _
Optional strCC As String, _
Optional strBCC As String) As Boolean

Dim objOutlook As Object ' Note: Must be late-binding.
Dim objNameSpace As Object
Dim objExplorer As Object
Dim blnSuccessful As Boolean
Dim blnNewInstance As Boolean

'Is an instance of Outlook already open that we can bind to?
On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")
On Error GoTo 0

If objOutlook Is Nothing Then

'Outlook isn't already running - create a new instance...
Set objOutlook = CreateObject("Outlook.Application")
blnNewInstance = True
'We need to instantiate the Visual Basic environment...
(messy)
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objExplorer =
objOutlook.Explorers.Add(objNameSpace.Folders(1), 0)
objExplorer.CommandBars.FindControl(, 1695).Execute

objExplorer.Close

Set objNameSpace = Nothing
Set objExplorer = Nothing

End If

blnSuccessful = objOutlook.FnSendMailSafe(strTo, strCC, strBCC, _
strSubject,
strMessageBody, _
strAttachmentPaths)

If blnNewInstance = True Then objOutlook.Quit
Set objOutlook = Nothing

FnSafeSendEmail = blnSuccessful

End Function
------------------------------------------------------------------------------------------------------------------------


It gives me on error "Object doesn't support this property or method"
when it is in
"blnSuccessful = objOutlook.FnSendMailSafe(strTo, strCC, strBCC, _
strSubject,
strMessageBody, _
strAttachmentPaths)"

What's wrong?

Hanski
 
B

Brendan Reynolds

Did you read the tutorial? Did you add the necessary code to the Outlook VBA
project as explained in the tutorial?
 
H

hanski

Did you read the tutorial? Did you add the necessary code to the Outlook VBA
project as explained in the tutorial?

--
Brendan Reynolds

































- Näytä siteerattu teksti -

Yes, i did add the code to the Outlook and I tested it and it worked
fine.

I suppose something is missing from my Access, maybe in Vba
References?

Hanski
 
W

wayne.phillips

As per the tutorial;

1. Are you definately running Outlook 2003 / 2007 (note that this
solution doesn't work for earlier versions)
2. Is the Outlook code definately inside the 'ThisOutlookSession'
module?
3. Ensure the empty routine called 'Private Sub
Application_Startup()' also exists in your Outlook code
4. Did you set Outlook's 'Macro Security' level to LOW?
5. Did you shutdown and restart Outlook?

A reference to the Outlook object model is not needed, since the code
uses late-binding calls to Outlook.

HTH
 
H

hanski

As per the tutorial;

1.  Are you definately running Outlook 2003 / 2007 (note that this
solution doesn't work for earlier versions)
2.  Is the Outlook code definately inside the 'ThisOutlookSession'
module?
3.  Ensure the empty routine called 'Private Sub
Application_Startup()' also exists in your Outlook code
4.  Did you set Outlook's 'Macro Security' level to LOW?
5.  Did you shutdown and restart Outlook?

A reference to the Outlook object model is not needed, since the code
uses late-binding calls to Outlook.

HTH

Hi.

Thank you for your advices because now it works! Everything else was
correct but Macro security level was too high.
Thank you very much!

hanski
 
H

hanski

As per the tutorial;

1.  Are you definately running Outlook 2003 / 2007 (note that this
solution doesn't work for earlier versions)
2.  Is the Outlook code definately inside the 'ThisOutlookSession'
module?
3.  Ensure the empty routine called 'Private Sub
Application_Startup()' also exists in your Outlook code
4.  Did you set Outlook's 'Macro Security' level to LOW?
5.  Did you shutdown and restart Outlook?

A reference to the Outlook object model is not needed, since the code
uses late-binding calls to Outlook.

HTH

Hi.

I have still one more question. Does Outlook has to be open when I run
the module in Access? If it is not then comes again the error:'Object
doesn't support this property or method'

hanski
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top