[当前,对于一个项目,我正在尝试创建一个功能,该功能可以使用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
[基本上,我正在尝试这样做,因此,当电子邮件地址值为空白/空时,不发送电子邮件,但是当有电子邮件时,则将电子邮件发送到该地址。唯一的问题是,当字段中没有数据时,我不知道如何停止错误消息的出现。该代码在某人的生日时可以很好地工作,因此该字段中有一个有效的电子邮件地址。
如果字段为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