Ms access 访问2016 vba以根据查询结果发送电子邮件,并记录发送回同一表的电子邮件的日期

Ms access 访问2016 vba以根据查询结果发送电子邮件,并记录发送回同一表的电子邮件的日期,ms-access,Ms Access,我使用vba代码让Access 2016根据查询结果通过Outlook 2016发送电子邮件。代码在其当前状态下运行良好。基本上,这是为了在向客户提供评估后19天自动执行后续流程 但是,在查询所从的同一个表中,每个名为[FUP_Sent_Date]的记录都有一个打开的字段。我希望此过程返回到它发送电子邮件给的每个客户的该字段,并在该客户的记录中插入当前日期,作为发送电子邮件的证据(还因为该字段将成为查询条件的第二个和不可分割的部分,因为我只想向尚未发送电子邮件的客户发送电子邮件) 你能帮忙吗?非

我使用vba代码让Access 2016根据查询结果通过Outlook 2016发送电子邮件。代码在其当前状态下运行良好。基本上,这是为了在向客户提供评估后19天自动执行后续流程

但是,在查询所从的同一个表中,每个名为[FUP_Sent_Date]的记录都有一个打开的字段。我希望此过程返回到它发送电子邮件给的每个客户的该字段,并在该客户的记录中插入当前日期,作为发送电子邮件的证据(还因为该字段将成为查询条件的第二个和不可分割的部分,因为我只想向尚未发送电子邮件的客户发送电子邮件)

你能帮忙吗?非常感谢

代码如下,请记住,此时正文中的文本只是jibberish:

公共子SendFollowUpEmail()

Dim db作为DAO.Database
Dim rs作为DAO.Recordset
将emailTo设置为字符串
将主题设置为字符串
将文本设置为字符串
将outApp设置为Outlook.Application
将outMail设置为Outlook.MailItem
Dim Outlook以布尔形式启动
出错时继续下一步
Set-outApp=GetObject(,“Outlook.Application”)
错误转到0
如果outApp什么都不是,那么
Set-outApp=CreateObject(“Outlook.Application”)
outlookStarted=True
如果结束
Set db=CurrentDb
strSQL=“选择估算日期、姓名、姓氏、客户电子邮件、FUP\U发送日期”&_
“从qry_PropFolUp,其中估算日期=(日期()-19)”
Set rs=db.OpenRecordset(strSQL,dbOpenDynaset)
直到R.EOF为止
emailTo=Trim(rs.Fields(“First_Name”).Value&“&rs.Fields(“Last_Name”).Value)&_
" "
emailSubject=“提案跟进”
如果为空(rs.Fields(“First_Name”).Value),则
emailSubject=emailSubject&“for”&_
rs.Fields(“名字”).Value&&rs.Fields(“姓氏”).Value
如果结束
emailText=Trim(“Hi”和rs.Fields(“First_Name”).Value)和“!”和vbCrLf
emailText=emailText&_
“Lorem ipsum dolor sit amet,Concertetuer Adipising Elite.”和rs.Fields(“估算日期”)。价值和_
“梅塞纳·波特托·康格·马萨·福斯·波苏尔,麦格纳塞德”&_
“pulvinar ultricies,purus lectus malesuada libero,sit amet”&_
“康莫多·麦格纳·厄罗斯·奎斯·乌尔纳。”
Set-outMail=outApp.CreateItem(olMailItem)
outMail.To=emailTo
outMail.Subject=emailSubject
outMail.Body=emailText
发邮件
rs.编辑
rs(“FUP_Date_Sent”)=现在()
下一个
环
rs.Close
设置rs=无
Set db=Nothing
如果当时开始观察的话
outApp,退出
如果结束
发送邮件=无
设置应用程序=无

结束Sub

你几乎拥有了一切

rs.Edit
rs("FUP_Date_Sent") = Now()
rs.update

将您的记录集作为动态集打开(您没有指出任何内容,我相信默认值是快照)。在rs.movenext之前,给记录集一个带有时间戳的edit…update。(显然,您需要选择要更新的字段)非常感谢您的快速响应。虽然我很感激您对我的vba编程能力的信心,但不幸的是,我不清楚这方面的实际编码。我尝试了以下方法但没有成功:查看原始帖子中的更新代码,查看我添加的内容在[FUP_Email_Sent]字段中未能返回任何新信息。请查看下面的答案。此外,您知道可以将“rs.Fields”(“First_Name”).Value”更改为简单的“rs!”!第一个名字是“干净多了,非常好用!”!非常感谢你的帮助!!酷。没问题。给我一些道具!!!(标记那个笨蛋解决了!!!lol)现在我如何让宏在每天早上9:00自动运行?假设当时访问可能是开放的,也可能不是开放的,并且正在运行。哈,我一直在努力解决这个问题。您需要找到某个程序,该程序将在设定的时间为您打开Access,然后打开该宏,或者打开一个具有运行该宏的OnOpen的窗体。(在我当前的项目中,只有一群用户被分配运行它,但我可以设置一个系统,在该系统中,当天登录的第一个用户被标记为在后台自动运行宏-全局时间戳在这里很重要,以避免重复运行)我读过有关创建批处理文件的内容,该批处理文件由Windows事件计划程序中设置的事件运行和触发,该事件通过命令行中的x/开关打开access,从而提示它运行特定宏。但我想不出怎么把它们放在一起。
rs.Edit
rs("FUP_Date_Sent") = Now()
rs.update