首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB-MSFlexGrid1控件有关问题

2012-01-19 
VB-MSFlexGrid1控件问题我使用的是VB6.0企业版问题描述:双击MSFlexGrid1控件 选中一行的时候 text 显示这

VB-MSFlexGrid1控件问题
我使用的是VB6.0企业版
问题描述:双击MSFlexGrid1控件 选中一行的时候 text 显示这行数据的某些信息
如:双击MSFlexGrid1的编号001这行的时候,编号001商品信息 自动显示到上面这些text中,(按编号排序)见下图:


但是,当我用其他方式排列这些数据的时候,如(按类别排序)双击编号为001的商品信息时,此时编号为001的商品信息已经排列到第三行,双击它,它却显示数据库中存储的第三个位置的商品信息。


怎样才能正确显示呢?望高手解答!
如需完整源码请联系本人QQ:139445559  
分不多了不好意思

[解决办法]

Private Sub Grid1_Click()
txt(0).Text = Grid1.TextMatrix(Grid1.RowSel, 2)
txt(1).Text = Grid1.TextMatrix(Grid1.RowSel, 3)
end sub

[解决办法]
查询语句后面加个条件指向点击的列就行了,如果第一列HID是数据库自增字段,这个最好;否则就去匹配后面的编号啥的吧,比如:
Private Sub Grid1_Click()
Dim rs As New ADODB.Recordset
rs.open "select * from Huopin where HID='" & Grid1.TEXT & "'",cn, adOpenDynamic, adLockOptimistic
'rs.open "select * from Huopin where hNo='" & Grid1.TextMatrix(Grid1.RowSel, 2) & "'"
, cn, adOpenDynamic, adLockOptimistic
if not rs.eof then
txt(0).Text = rs!hNo
txt(1).Text = rs!hName
txt(2).Text = rs!hRukujia
cmbleibie.Text = rs!hLeibie
txt(5).Text = rs!hNum
If IsNull(rs!hDanwei) = True Then
cmbdanwei.Text = ""
Else
cmbdanwei.Text = rs!hDanwei
End If
endif
txt(3).SetFocus
rs.Close
End Sub

[解决办法]
原因分析:
Grid1自动排序自后行号已经发生改变,与RS(ADODB.Recordset)数据集的行号已经不对应了。
解决办法:
方法1、所见即所得,直接读取Grid1的文本数据。代码直接参考四楼兄弟的


探讨
Private Sub Grid1_Click()
txt(0).Text = Grid1.TextMatrix(Grid1.RowSel, 2)
txt(1).Text = Grid1.TextMatrix(Grid1.RowSel, 3)
end sub

热点排行