2013-05-12 21 views
1

我有一个列包含电子邮件地址的表。VBA访问从数据库获取字符串

我想获得这些电子邮件地址并发送邮件给他们。 我的问题是,我不知道如何获取地址。 我想获得一个字符串作为

[email protected];[email protected];[email protected] 

我怎样才能得到这个字符串,以便将其传递给受惠人士票价?

+0

你尝试使用字符串,因为它是? – gordatron 2013-05-12 18:44:12

+0

你是什么意思?我不知道电子邮件将在数据库 – 2013-05-12 18:44:58

+0

这是如何在你的DB字符串? – gordatron 2013-05-12 18:58:06

回答

2

从存储器(未测试):

Dim db As DAO.Database, rs As DAO.Recordset 
Dim s As String 

Set db = CurrentDb 
Set rs = db.OpenRecordset("SELECT email FROM myTable WHERE ...") 
Do While Not rs.EOF 
    If s = "" Then 
     s = rs!email 
    Else 
     s = s & ";" & rs!email 
    End If 
    rs.MoveNext 
Loop 
rs.Close: Set rs = Nothing 
db.Close: Set db = Nothing 

由于从查询连接字符串是一种常见的任务,我建议创建一个可重复使用的功能:

Public Function ConcatenateFromSql(ByVal sql As String, _ 
            Optional ByVal delimiter As String = ";") As String 
    Dim db As DAO.Database, rs As DAO.Recordset 
    Dim s As String 

    Set db = CurrentDb 
    Set rs = db.OpenRecordset(sql) 
    Do While Not rs.EOF 
     If s = "" Then 
      s = rs(0) 
     Else 
      s = s & delimiter & rs(0) 
     End If 
     rs.MoveNext 
    Loop 
    rs.Close: Set rs = Nothing 
    db.Close: Set db = Nothing 

    ConcatenateFromSql = s 
End Function 
+0

优秀!!感谢您的帮助!:) – 2013-05-12 19:58:23