如何从SQL到VBA文本框中检索多个数据?

时间:2020-05-09 15:03:03

标签: sql vba

我有这样的代码:

SQL = "SELECT STA_ID, AVG(STA_INCOME) " & _
      "FROM STAFF " & _
      "WHERE STAFF_EXP = '" & Label1.Value & "' " & _
      "GROUP BY STA_ID"
rs.Open SQL, cn

With rs
i = 0
    Do Until .EOF
       label2.Value = rs(1)
       label3.Value = rs(0)
       i = i + 1
       .MoveNext
    Loop
End With

我可以在标签2中检索平均STA_INCOME,但是在标签3中只能检索一个而不是多个STU_ID数据。我该怎么做才能显示文本框(标签3)是否与我输入的Label1.Value相匹配的多个值?非常感谢。

1 个答案:

答案 0 :(得分:0)

考虑将记录集循环中的所有ID和平均值串联起来以填充文本框:

' RETRIEVING SINGLE AVERAGE
avg_SQL = "SELECT AVG(STA_INCOME) " & _
          "FROM STAFF " & _
          "WHERE STAFF_EXP = '" & Label1.Value & "' "
rs.Open avg_SQL, cn
label2.Value = rs.Fields(0).Value
rs.Close


' RETRIEVING MULTIPLE IDs
id_SQL = "SELECT STA_ID" & _
         "FROM STAFF " & _
         "WHERE STAFF_EXP = '" & Label1.Value & "' " & _
         "GROUP BY STA_ID"
rs.Open SQL, cn

' ITERATIVELY CONCATENATE VALUES
str_ids = ""
Do Until rs.EOF
   str_ids = str_ids & rs.Fields(0).Value & vbNewLine
   rs.MoveNext
Loop

label3.Value = str_ids
rs.Close