1

早上好,

我希望有人可以帮助我。我在 VBA 编码方面并没有过多的经验,并且有一些事情需要完成,老实说我不知道​​从哪里开始......我遇到了一些我可以使用的编码,如下所示

Dim strSQL
Dim db As DAO.Database
Dim MailList As DAO.Recordset
Dim MyOutlook As Outlook.Application
Dim MyMail As Outlook.MailItem
Dim Subjectline As String
Dim BodyFile As String
Dim fso As FileSystemObject
Dim MyBody As TextStream
Dim MyBodyText As String
Dim MyDecision As String
Dim strReportName As String
Dim strEnroll As String
Dim strWho As String
Dim strEmail As String

Set fso = New FileSystemObject
Set MyOutlook = New Outlook.Application
Set db = CurrentDb()
Set MailList = db.OpenRecordset("qryEmail")

Subjectline$ = "Expiration Date" & " " & Date

Set MyMail = MyOutlook.CreateItem(olMailItem)

Do While Not MailList.EOF
MyBodyText = MailList("")
MailList.MoveNext
Loop

MyMail.To = "" & ""
MyMail.CC = CurrentUser() & ""

MyMail.Subject = Subjectline$

MyMail.Body = MyBodyText
MyMail.Display

strEmail = Now()
strWho = CurrentUser()

Set MyMail = Nothing
Set MyOutlook = Nothing

该查询称为qryemail,这些是该查询中的表

ColID、ColDate、公司名称、地址、地址 1、县、镇、邮政编码

在上面的代码中,我会将这些表名放在......

任何帮助将不胜感激

谢谢艾玛

4

2 回答 2

0

澄清一下,您正在尝试将查询结果通过电子邮件发送给许多人。正确的?如果是这样,您已经很接近了。

看看这段代码。它演示了从查询中获取值的方法。要使用,请将文本替换为<INSERT YOUR FIELD>查询中的字段名称。因此,如果您愿意Companyname,请将其替换为文本。

Do While Not MailList.EOF
  If MyBodyText = "" Then
    MyBodyText = MailList![<INSERT YOUR FIELD>]
  Else
    MyBodyText = MyBodyText & "," & MailList![<INSERT YOUR FIELD>]
  End If
  MailList.MoveNext
Loop
于 2013-10-28T18:50:56.603 回答
0

您需要遍历查询的字段名称(ColID、ColDate、Companyname、address、address1、county、town、postcode)并将它们全部连接到电子邮件的消息正文中。

要在电子邮件正文中实现以下所有目标:

ColID:(某个值)
ColDate:(某个值)
Company:(某个值)
Address:(某个值) Address1
:(某个值)
County:(某个值)
Town:(某个值)
Postcode:(某个值)

代码如下:

MailList.MoveLast
MailList.MoveFirst

MyBodyText = ""

Do While Not MailList.EOF
MyBodyText = MyBodyText & "ColID: " & MailList!ColID & vbNewLine
MyBodyText = MyBodyText & "ColDate: " & MailList!ColDate & vbNewLine
MyBodyText = MyBodyText & "Company: " & MailList!CompanyName & vbNewLine
MyBodyText = MyBodyText & "Address: " & MailList!address & vbNewLine
MyBodyText = MyBodyText & "Address1: " & MailList!address1 & vbNewLine
MyBodyText = MyBodyText & "County: " & MailList!county & vbNewLine
MyBodyText = MyBodyText & "Town: " & MailList!town & vbNewLine
MyBodyText = MyBodyText & "Postcode: " & MailList!postcode & vbNewLine

MailList.MoveNext
Loop

请注意,这会遍历记录集 (qryEmail) 的所有记录。如果这不是您的意图,请考虑在 dbOpenRecordset 行中添加 where 子句以过滤或条件输出到特定记录或少数记录。

于 2014-06-01T16:46:54.267 回答