在 MS Access 中以分号分隔的列表检索电子邮件地址的子查询

Posted

技术标签:

【中文标题】在 MS Access 中以分号分隔的列表检索电子邮件地址的子查询【英文标题】:Sub query to retrieve email addresses as semi-colon separated list in MS Access 【发布时间】:2015-05-20 14:31:29 【问题描述】:

我在 Access 中有一个联系人表和一个搜索表单。用户指定搜索条件后,表格只显示符合条件的记录

他们是一种将搜索到的联系人的所有电子邮件地址检索为分号分隔列表的方法,这样我就可以复制并粘贴到新电子邮件的“收件人”字段中。

感谢任何帮助

肉山。

【问题讨论】:

您需要使用记录集对象。循环获取列表 【参考方案1】:

您也可以使用 UDF,只是将其排除在程序之外。获取筛选结果的条件。然后,您只需通过标准。我不确定你是如何建立你的标准的。在黑暗中刺伤是获取所有名为“保罗”的人的电子邮件。所以你的代码将是。

Public Sub getEmailString(FieldName As String, Tablename As String, Criteria As String)
    Dim tmpRS As DAO.Recordset
    Dim tmpStr As String, retStr As String

    tmpStr = "SELECT " & FieldName & " FROM " & Tablename & " WHERE " & Criteria

    Set tmpRS = CurrentDB.OpenRecordset(tmpStr)

    If tmpRS.RecordCount > 0 Then
        Do While Not tmpRS.EOF
            retStr = retStr & tmpRS.Fields(0) & ";"
            tmpRS.MoveNext
        Loop
    End If 
    getEmailString = retStr
    Set tmpRS = Nothing
End Sub

要使用它,您只需使用它。

Dim someEmailString As String
someEmailString = getEmailString("EmailFieldName", "ContactsTableName", "FirstName = 'Paul'")

如果你有东西它应该返回,

paul.someone@somedomain.com;paul.someoneelse@somenewdomain.co.uk;

希望这会有所帮助。

【讨论】:

您好,保罗,感谢您的回复。问题是“表单文本字段”被用作运行查询的参数。当我运行您在查询结果中建议的代码时。它给出了错误'Arguments required。参数编号 x'。如何解决这个问题? 请用您目前所做的更新您的原始帖子。

以上是关于在 MS Access 中以分号分隔的列表检索电子邮件地址的子查询的主要内容,如果未能解决你的问题,请参考以下文章

当字符串包含分号时,MS Access VBA AddItem

MS Access VBA DoCmd.TransferText 如何分隔列?

单击列表框时,如何在文本框中以另一种形式从ms access 2010中的列表框中移动所选项目

如何使用密码从 MS Access 数据库中检索网页数据

从 MS Access 表单中的动态列表框创建新的 Excel 电子表格

MS Access SQL 切换功能