使用表中的值填充textBox

时间:2017-02-03 09:43:03

标签: sql ms-access

我有一个带有一些textBox的表单,我想用SQL查询中的一个值填充其中一个。

该表名为tbl-apartner,我想选择与mailadressserviceid)匹配的每个sid2

SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = sid2; 

该SELECT语句的输出是正确的但我无法用它填充textBox。

我的想法是创建一个字符串,其中每个mailadress都与SID匹配,以将它们用作邮件的收件人。

我尝试使用dlookup(" [EMail]" ; "qry-apartner") 但输出只是我查询中的第一个条目。

1 个答案:

答案 0 :(得分:1)

您必须在查询结果中编写VBA函数迭代,并创建一个字符串以分配给您的文本框。根据表单的行为方式,您可以将其放入相应的事件中,例如,如果表单打开一次使用OnOpen,如果用户可以更改sid2,则使用相关控件的AfterUpdate事件等。 / p>

示例代码:

Dim ThisDB As DAO.Database
Set ThisDB = CurrentDb
Dim d As DAO.Recordset
Dim q As String
q = "SELECT [tbl-apartner].[EMail] FROM [tbl-apartner] WHERE [tbl-apartner].[SID] = " & sid2
Set d = ThisDB.OpenRecordset(q, dbOpenDynaset)
Dim Result As String
Result = ""
If d.EOF = False Or d.BOF = False Then
    d.MoveFirst
    Do While Not d.EOF
        If Result <> "" Then Result = Result & vbCrLf
        Result = Result & d!Email
        d.MoveNext
      Loop
  End If
d.Close

以上为每个电子邮件地址创建了一个新行。将vbCrLf替换为您想要的任何内容,例如&#34;,&#34;将生成以逗号分隔的电子邮件。