嗨,我正在尝试创建一个Access宏,它将邮件发送给人。
此邮件存在于查询“Query1”的“MailField”字段中。所以我试图循环到所有行并使用“MailField”发送邮件,并将第i行的相应值作为“消息”:
示例:发送邮件至“mail2@123.com”,并附带消息“第2行中字段a的值”。
Function makroabc()
On Error GoTo makroabc_Err
For i = "first Raw" To "mumber of data in the query"
If (Eval("Hour(Now()) Between 11 And 16")) Then
DoCmd.OpenQuery "Query1", acViewNormal, acReadOnly
DoCmd.SendObject , "", "", "Mail from row i", "", "", "Subject", "Message", False, ""
End If
Next i
makroabc_Exit:
Exit Function
makroabc_Err:
MsgBox Error$
Resume makroabc_Exit
End Function
我可以输入什么而不是“来自第i行的邮件”?
我希望你能帮助我。
谢谢。
答案 0 :(得分:0)
要在VBA中使用查询中的值,请不要使用Dim db as DAO.Database
Dim rs as DAO.Recordset
Dim subj as String
Set db = CurrentDB
Set rs = db.OpenRecordset("Query1")
Do While Not rs.EOF
subj = "Hello " & rs![field b]
DoCmd.SendObject acSendNoObject, , , rs!Mailfield, , , subj, "Message", False
rs.MoveNext
Loop
rs.Close
。改为打开 Recordset 。
E.g。要发送给查询中的所有收件人,请遍历记录集:
insert into tableB(number,step,last_update) -- INSERT OK
values (cur.number,cur.step + 1,cur.last_update);
commit;
请注意,Outlook可能会显示安全警告。