如何将访问查询中的字段值用于vba代码

时间:2016-05-11 08:18:44

标签: vba email ms-access-2010

enter image description here

嗨,我正在尝试创建一个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行的邮件”?

我希望你能帮助我。

谢谢。

1 个答案:

答案 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可能会显示安全警告。