本来我是很不喜欢用VB的,在编写软件或者是做网站的时候都会避开VB。但是这次毕业设计我们班有好多同学选了用VB做系统的课题,他们又要找我帮忙完成,所以我也就被迫去复习或者是学习些VB的东西了。
今天就碰到一个问题了:要求实现的功能是当点击datagrid的行时要求将该行的信息显示到几个文本框中。本来这个似乎也不难,我先是用下面的方法实现:
Private Sub DGd_xmxx_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
'将数据导入文本框中
SQL = "select * from ydxmb order by xmbh"
Set rs = SelectSQL(SQL, msg)
Set DGd_ydyxx.DataSource = rs
If Ado_xm.Recordset.EOF = False Then
rs.MoveFirst
i = DGd_xmxx.Row
rs.Move i
TxtItem(0).Text = rs.Fields(0)
TxtItem(1).Text = rs.Fields(1)
Cmb_xmlb.Text = rs.Fields(2)
End If
End Sub
但是问题出来了:如果是这个表中的记录不多,也就是datagrid没有滑动条的时候就不会出现读取信息错误,但是当表中记录很多,datagrid需要拖动滚动条的时候,显示的信息就会错乱了。
于是换了个思路,既然用了adodc,那就用下面的方法岂不更简单嘛!
Private Sub DGd_xmxx_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
'将数据导入文本框中
If Ado_xm.Recordset.EOF = False Then
TxtItem(0).Text = Ado_xm.Recordset.Fields(0)
TxtItem(1).Text = Ado_xm.Recordset.Fields(1)
Cmb_xmlb.Text = Ado_xm.Recordset.Fields(2)
End If
End Sub
如此一来,上面提到的问题就不会在有了,正确解决了问题。
阅读(2084) | 评论(1) | 转发(0) |