我对 Access 完全陌生(对 SQL 服务器有一些经验)。
我不确定它在 MS Access 2010 中是否可能:如果 table.dateField 之一是今天或更早 - 需要发送有关该记录的电子邮件。
广泛挖掘并没有带来任何结果,似乎不可行,但希望对此有集体意见。谢谢
我对 Access 完全陌生(对 SQL 服务器有一些经验)。
我不确定它在 MS Access 2010 中是否可能:如果 table.dateField 之一是今天或更早 - 需要发送有关该记录的电子邮件。
广泛挖掘并没有带来任何结果,似乎不可行,但希望对此有集体意见。谢谢
Microsoft Access应用程序没有任何内置功能来自动扫描数据库并根据表中记录的状态发送电子邮件。但是,这并不意味着这样的功能对于存储在 Access 数据库中的信息“不可行”。事实上,实现这样的功能可以像这样简单:
下面的 VBScript 代码可以cscript.exe
在 Windows 下作为计划任务每天早上运行(通过 )。它将扫描一个名为 [Patients] 的表,并向当天过生日的每个人发送一条“生日快乐”消息。
Option Explicit
Dim con ' As ADODB.Connection
Dim rst ' As ADODB.Recordset
Dim msg ' As CDO.Message
Set con = CreateObject("ADODB.Connection") ' New ADODB.Connection
con.Open _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\Gord\Desktop\Database1.accdb;"
Set rst = CreateObject("ADODB.Recordset") ' New ADODB.Recordset
rst.Open _
"SELECT FirstName, Email " & _
"FROM Patients " & _
"WHERE Month(DOB) = Month(Date()) " & _
"AND Day(DOB) = Day(Date())", _
con
Do Until rst.EOF
Set msg = CreateObject("CDO.Message") ' New CDO.Message
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.example.com"
msg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
msg.Configuration.Fields.Update
msg.To = rst("Email").Value
msg.From = "admin@example.com"
msg.Subject = "Happy Birthday!"
msg.TextBody = "Hi, " & rst("FirstName").Value & ". We hope you have a great birthday today!"
msg.Send
Set msg = Nothing
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
如果您的意思是您需要在表上执行一个查询,并且该查询将管理针对每个违规行发送电子邮件的执行 - 那么我认为您不会有太多运气;
您可以从访问中打开电子邮件窗口,但这不会自行发送电子邮件。
你用什么做你的后端?如果它很灵活,并且您使用 SQL Server 作为后端,那么您可以使用一个实际的触发器来调用存储过程来发送所需的电子邮件。
除此之外,我能想到的就是
希望这可以帮助