再次请教vb datareport 使用问题!

来源:百度知道 编辑:UC知道 时间:2024/05/05 11:20:07
VB DataReport 数据库中有多条符合条件的记录,如何控制只显示某一条记录?

报表的数据源如果select查询到了符合条件的记录,且记录不止一条的话,报表上会全部把它们罗列出来,我想只要一条记录,且可控制显示哪条记录,怎么处理??谢谢
代码
cxb.Open "select * from [登录] where 密码='" & Form1.Text1.Text & "'", BaseCnn, adOpenStatic, adLockReadOnly

Set DataReport1.DataSource = cxb

DataReport1.Sections("section1").Controls.Item("text1").DataField = "用户名"

DataReport1.Sections("section1").Controls.Item("text2").DataField = "密码"

报表上会把所有符合条件的记录都显示出来,
并且其它固定控件也跟着重复显示,即如果有三条记录,label1页显示三次,

如何控制只显示某一条记录?
感谢abqqe的回答,但问题的关键就是因为查询到的数据记录不只是一条,因为本来就不止一条,我要的是能够依次显示这些记录,至于什么时候显示就由我控制,但事先并不知道到到底有多少相同记录。

首先,这要在数据库的建立时要有严格的规范,例如 登陆处理方面要求用户名是唯一的,这是在数据库的登陆表的用户名里要求唯一性,在添加新用户的时候也要排除相同的用户名出现。
然后,语句 cxb.Open "select * from [登录] where 密码='" & Form1.Text1.Text & "'", BaseCnn, adOpenStatic, adLockReadOnly
中不查询密码。而查询用户名的就会只显示一条数据。

或者,语句 cxb.Open "select top 1 * from [登录] where 密码='" & Form1.Text1.Text & "'", BaseCnn, adOpenStatic, adLockReadOnly
就可以得到第一条的数据记录