ACCESS 2007 - 在特定事件时使用Outlook自动发送和发送电子邮件

时间:2011-07-20 18:28:39

标签: email ms-access ms-access-2007 outlook-2007

我正在尝试在Microsoft Access 2007中创建一个应用程序。如何在没有任何用户交互的情况下在特定事件上使用Outlook 2007静默发送电子邮件。我应该如何处理这个问题。如果你可以提供一些VBA,那将是非常好的,但如果没有,你能指导我如何实现这个目标吗?

3 个答案:

答案 0 :(得分:3)

我能够使用以下代码解决我的问题:

Public Sub SendEmail()

    Email_Bcc = "email@domain.com"
    Email_Body = "Email body!!!!"
    Email_Subject = "Email Subject"

    On Error GoTo debugs

    Set Mail_Object = CreateObject("Outlook.Application")
    Set Mail_Single = Mail_Object.CreateItem(0)

    With Mail_Single
        .Subject = Email_Subject
        .To = Email_Send_To
        .cc = Email_Cc
        .BCC = Email_Bcc
        .Body = Email_Body
        .send
    End With

debugs:
    If Err.Description <> "" Then MsgBox Err.Description

End Sub

答案 1 :(得分:1)

首先在您要发送电子邮件的情况下声明几个变量,或者在您希望调用该事件的函数中声明几个变量。

Public Started As Boolean
Public oApp As Outlook.Application
Public oItem As Outlook.MailItem

接下来,打开或获取Outlook,如果它正在运行。

On Error Resume Next
'Get Outlook if it's running
Set oApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
     'Outlook wasn't running, start it from code
     Set oApp = CreateObject("Outlook.Application")
    Started = True
End If

现在,做你的电子邮件。

 Set oItem = oApp.CreateItem(olMailItem)
 With oItem
    .To = "email@email.com"
    .Subject = "Your email, sirrah."
    .Body = "Please enjoy this complimentary email."
    'Send the email
    .Send
End With

最后,关闭前景如果之前没有运行并清理。

Set oItem = Nothing
If Started Then
    oApp.Quit
End If

答案 2 :(得分:0)

您可以使用宏和“SendObject”操作执行此操作“无代码”。确保完成所有必要的参数To,Subject,Message Text,然后将Edit Message参数设置为'No'。

然后,您可以将此宏附加到您希望的任何事件,例如按钮的OnClick事件。