Ms access 向表格中的每个联系人发送电子邮件访问VBA
我在Access中的联系人表中有一列包含邮件地址。我想用带有签名、徽标和免责声明的模板向表中的每个联系人发送一封电子邮件。我设法找到了模板的代码,但我不知道如何将其发送到表中的所有联系人。这是我的密码:Ms access 向表格中的每个联系人发送电子邮件访问VBA,ms-access,vba,Ms Access,Vba,我在Access中的联系人表中有一列包含邮件地址。我想用带有签名、徽标和免责声明的模板向表中的每个联系人发送一封电子邮件。我设法找到了模板的代码,但我不知道如何将其发送到表中的所有联系人。这是我的密码: Sub sendmail() Dim strEmail As String Dim strSubject As String Dim objOutlook As Object Dim objMailItem As Object Set objOutlook = CreateObject("
Sub sendmail()
Dim strEmail As String
Dim strSubject As String
Dim objOutlook As Object
Dim objMailItem As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMailItem = objOutlook.CreateItem(olMailItem)
Set objMailItem = objOutlook.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\Template.oft")
strEmail = "mail@test.com"
strSubject = "Test"
objMailItem.To = strEmail
objMailItem.Subject = strSubject
objMailItem.Display
End Sub
有什么建议吗?
谢谢将strEmail变量设置为列出表中的所有电子邮件地址。您可以这样做:
Private Sub sendmail()
Dim strEmail As String
Dim strSubject As String
Dim objOutlook As Object
Dim objMailItem As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMailItem = objOutlook.CreateItem(olMailItem)
Set objMailItem = objOutlook.CreateItemFromTemplate("C:\Users\user\AppData\Roaming\Microsoft\Templates\Template.oft")
'set email addresses
strEmail = "mail@test.com"
Dim rs As Recordset
Dim sql As String
Dim i As Integer
sql = "SELECT fldEmailAddress FROM tblContacts"
Set rs = CurrentDb.OpenRecordset(sql)
With rs
If Not .EOF And Not .BOF Then
.MoveLast
.MoveFirst
For i = 0 To .RecordCount - 1
If i = 0 Then
strEmail = !fldEmailAddress
Else
strEmail = strEmail & "; " & !fldEmailAddress
End If
.MoveNext
Next
End If
End With
strSubject = "Test"
objMailItem.to = strEmail
objMailItem.Subject = strSubject
objMailItem.Display
End Sub
是否可以为每个联系人打开不同的电子邮件(使用相同的模板)?这是必需的,因为应该在正文中添加人的姓名。