我对 VBA/SQL 很陌生,我正在尝试执行条件内部联接。
我有两个表,它们有一个共同的列(“CRM”和“CodeCRM”),当表1(“Flux”)中的某些内容被触发(CodeBlocage = 101)时,我想从表2(“Desks”)获取电子邮件地址") 以便将其添加到自动 Outlook 电子邮件中。
Dim StrDestinataire As String
Select Case Strtable
Case "Flux", "GAFIJOUR"
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Y As String
Dim sSql As String
Set cn = CurrentProject.Connection
sSql = "Select AddMailCRM from Desks Inner Join Flux on Desks.CODECRM = Flux.CRM WHERE Flux.CODEBLOCAGE = '101'"
Set rs = cn.Execute(sSql)
If Not rs.BOF And Not rs.EOF Then
Y = rs.Fields("AddMailCRM").Value
End If
StrDestinataire = Y
cn.Close
一切都很好,只是它应该返回多个电子邮件地址值。有线索吗?
谢谢
最佳答案
读取记录集时,您必须逐行循环记录。使用当前代码,您只需查看第一行。
尝试这样的事情:
Dim results as New List(Of String)
While Not rs.EOF
results.Add(rs.Fields("AddMailCRM").Value)
rs.MoveNext()
End While
results = results.Distinct().ToList
结果变量将是唯一值的列表
关于sql - 在条件内连接语句上返回多个值 (VBA/SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43200405/