如何在Microsoft Access中实现在某人生日那天自动向某人发送电子邮件的功能

问题描述 投票:0回答:1

[当前,对于一个项目,我正在尝试创建一个功能,该功能可以使用Visual Basic在Microsoft Access中自动向生日那天的人发送电子邮件,该功能是通过AutoExec宏激活的。我正在使用的代码如下。

Public Function BirthdayEmail()

DoCmd.OpenReport "BirthdayMessageR", acViewNormal, , , acWindowNormal

If Len([Reports]![BirthdayMessageR]![Email Address]) = 0 Then

DoCmd.SendObject acSendNoObject, , , "[email protected]", , , "test", "test", True

Else

DoCmd.SendObject acSendNoObject, , , [Reports]![BirthdayMessageR]![Email Address], , , "test", "test", True

End If

End Function

[基本上,我正在尝试这样做,因此,当电子邮件地址值为空白/空时,不发送电子邮件,但是当有电子邮件时,则将电子邮件发送到该地址。唯一的问题是,当字段中没有数据时,我不知道如何停止错误消息的出现。该代码在某人的生日时可以很好地工作,因此该字段中有一个有效的电子邮件地址。

vba ms-access access-vba
1个回答
0
投票

如果字段为Null,Len()函数将返回Null,这意味着Null = 0将返回false,因为它肯定不能为true,否则将运行其他SendObject代码。无法将任何内容与Null进行比较,因为Null没有可比较的内容。

使用Nz()函数进行Null处理的可能性。

If Nz([Reports]![BirthdayMessageR]![Email Address], "") = "" Then

没有电子邮件地址时,不要打扰发送任何电子邮件。

If Nz([Reports]![BirthdayMessageR]![Email Address], "") <> "" Then
    DoCmd.SendObject acSendNoObject, , , [Reports]![BirthdayMessageR]![Email Address], , , "test", "test", True
End If
© www.soinside.com 2019 - 2024. All rights reserved.