首页 > 解决方案 > 如何将查询结果(电子邮件地址)分配给变量?

问题描述

我正在尝试将查询结果(电子邮件地址)分配给变量。

我希望将该变量分配给一个按钮,以打开当前使用的邮件系统并使用该电子邮件地址打开一封新邮件。

Public valid_mail As Variant
    
Public Sub mail_list()
    valid_mail = "SELECT CustomerFACT.îééì FROM CustomerFACT WHERE (((CustomerFACT.[èìôåï ðééã]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[ùí àéù ÷ùø]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[ùí äì÷åç]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[îñôø òåñ÷]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*'));"
End Sub
    
Private Sub mail_70_Click()
    DoCmd.SendObject acSendNoObject, , , valid_mail
End Sub

当我不使用全局变量 valid_mail,而是在双引号中输入电子邮件地址时,它可以工作。

标签: sqlvbams-access

解决方案


这就是我在示例中测试的内容。您需要替换记录集的结果。

Public valid_mail As Variant

Sub test()
    Dim DB As Database
    Dim rs As Recordset
    Dim strSQL As String
    
    Set DB = CurrentDb
    
    strSQL = "select email from [table] "
    
    Set rs = DB.OpenRecordset(strSQL)
    
    valid_mail = rs!email
    
    MsgBox valid_mail
End Sub

替换您的将如下所示:

Public valid_mail As Variant
Sub  mail_list()
    Dim DB As Database
    Dim rs As Recordset
    Dim strSQL As String
    
    Set DB = CurrentDb
    
    strSQL = "SELECT CustomerFACT.ieei FROM CustomerFACT WHERE (((CustomerFACT.[eioai ðeea]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[ui aeu ÷uø]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[ui ai÷ac]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*')) Or (((CustomerFACT.[inoø oan÷]) Like '*' & Forms!CustomerLookUpFORM!searchbox & '*'));"
    
    Set rs = DB.OpenRecordset(strSQL)
    
    valid_mail = rs!ieei
    
    ''MsgBox valid_mail
End Sub

Private Sub mail_70_Click()

call mail_list

DoCmd.SendObject acSendNoObject, , , valid_mail
End Sub

并且您的 sql 语句表达不正确。它应该如下所示。

strSQL = "SELECT CustomerFACT.ieei FROM CustomerFACT WHERE (((CustomerFACT.[eioai ðeea]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*')) Or (((CustomerFACT.[ui aeu ÷uø]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "'*)) Or (((CustomerFACT.[ui ai÷ac]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*')) Or (((CustomerFACT.[inoø oan÷]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*'));"

我的回答也打错了。

Like '*" & Forms!CustomerLookUpFORM!searchbox & "'*))

Like '*" & Forms!CustomerLookUpFORM!searchbox & "*'))

纠正的sql是

strSQL = "SELECT CustomerFACT.ieei FROM CustomerFACT WHERE (((CustomerFACT.[eioai ðeea]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*')) Or (((CustomerFACT.[ui aeu ÷uø]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*')) Or (((CustomerFACT.[ui ai÷ac]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*')) Or (((CustomerFACT.[inoø oan÷]) Like '*" & Forms!CustomerLookUpFORM!searchbox & "*'));"

推荐阅读