VB 查询 显示查询到的全部记录

来源:百度知道 编辑:UC知道 时间:2024/09/25 09:31:05
做一个查询客户电话的页面
我用的是Sql = "select * from biao where suoxie='" & Text1.Text & "'"

Set rs = db.Execute(Sql)
If Not rs.EOF Then
Label1.Caption = rs("kehu") & vbCrLf & rs("dianhua")

Else
Label1 = "没有记录"

End If

出现的问题是:如果我数据库中有两个相同的suoxie
那么它显示的只是第一个记录,第二个没有显示了
比如:我有两个suoxie为"zk"的记录
那么它只有显示第一个
有没有什么方法,如果里面有两条,或者三条相同名字的,
要它在LABEL1里显示第一条"zk"的记录
LABEL2里显示第二个"zk"的记录

首先要加载一个label控件数组
Set rs = db.Execute(Sql)
If Not rs.EOF Then
for i=1 to rs.recordcount
Label(i).Caption = rs("kehu") & vbCrLf & rs("dianhua")
rs.movenext
next i
Else
Label1 = "没有记录"

End If

注意你上面的程序没有用循环,所以只能访问一条记录。如果要遍历所有suoxie为“zk”的记录,可以用下面的方法:
Sql = "select * from biao where suoxie='" & Text1.Text & "'"
Dim i As Integer
i=1
set rs=db.execute(sql)
If Not rs.EOF Then
rs.MoveFirst
While Not rs.EOF
Form1.Controls("Text" & i).Caption=rs("kehu") & vbCrLf & rs("dianhua")
rs.MoveNext
WEnd
End If
但这样做不好。因为你不知道有多少条suoxie相同的记录,所以你不能确定窗体中应该放置多少个Label。所以最好用一个表格(如MSHFlexGrid)来存放查询结果。