非常郁闷的问题,MSHFlexGrid求救

supermog 2004-11-21 09:21:08
我是用combo来调用数据库,在MSHFlexGrid上显示数据库内容的。

代码如下:
Private Sub combo_Click()
Dim mrc As ADODB.Recordset
Dim SQL As String
SQL = "select * from user where ID ='" & Trim(combo.Text) & "'"
Set mrc = ExecuteSQL(SQL)
Set MSHFlexGrid.DataSource = mrc
mrc.Close
End Sub

Private Sub MSHFlexGrid_Click()
With MSHFlexGrid
.Col = 0
A.Text = .Text
.Col = 1
B.Text = .Text
End With
End Sub

MSHFlexGrid能正常显示数据,但就不知道为什么我点击MSHFlexGrid里的各项数据却永远只能选择第一行的,二三等行的就不能选择了。请问有办法解决吗?我发觉要是把"select * from user where ID ='" & Trim(combo.Text) & "'"的" & Trim(combo.Text) & "换成具体的数据就能解决,但这就没意义啦,请帮帮忙!!!
...全文
149 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
True1024 2004-11-22
  • 打赏
  • 举报
回复
'这样写.

Private Sub MSHFlexGrid_Click()
txtInput.Move MSHFlexGrid1.Left + MSHFlexGrid1.CellLeft - 20, MSHFlexGrid1.Top + MSHFlexGrid1.CellTop - 20, MSHFlexGrid1.CellWidth, MSHFlexGrid1.CellHeight - 20
txtInput.Text = MSHFlexGrid1.Text
End Sub
ryq0000 2004-11-22
  • 打赏
  • 举报
回复
Private Sub MSHFlexGrid_Click()
With MSHFlexGrid
.Col = 0
A.Text = .Text
.Col = 1
B.Text = .Text
End With
End Sub
你这个点击事件有错误啊,你已经把MSHFlexGrid控件的内容位置确定死了,所以你只能获得第一行的数据,你应该动态的控制.col的值,也就是MSHFlexGrid_Click事件的参数而不应该把他控制死啊,明白了吗???
supermog 2004-11-22
  • 打赏
  • 举报
回复
请帮帮忙,实在想不通啊,究竟如何编辑才能实现MSHFlexGrid的选择呢
superseal 2004-11-22
  • 打赏
  • 举报
回复
你的问题我也碰到过,我也找到其产生的规律,就是一当你的查询结果集一条记录都无后,就会产生你所述的情况。
你可以这样解决:在用set mshflexgrid.datasource之前你先判断所查询的结果集是否有记录,假如无,则不要set mshflexgrid.datasource这么做,你就:
mshflexgrid.clear
mshflexgrid.rows=mshflexgrid.FixedRows
supermog 2004-11-22
  • 打赏
  • 举报
回复
我即使不写Private Sub MSHFlexGrid_Click()这段代码,我发觉光标依然只会停留在MSHFlexGrid的第一行,不会走到其他行阿,求解!!!
supermog 2004-11-22
  • 打赏
  • 举报
回复
ryq0000(ryq) ,我想问问怎样才算动态呢?要是我把"select * from user where ID ='" & Trim(combo.Text) & "'"的" & Trim(combo.Text) & "换成具体的数据,如001,我便能实现多选啊,不是太明白你的意思。
supermog 2004-11-22
  • 打赏
  • 举报
回复
这是什么意思?如果要实现多文本框时应怎样应用?
supermog 2004-11-21
  • 打赏
  • 举报
回复
up
Known 2004-11-21
  • 打赏
  • 举报
回复
哪位高手能告诉小弟在NT核心系统下,怎样编一个关机程序啊?100分
supermog 2004-11-21
  • 打赏
  • 举报
回复
不行啊,我是通过选择combo后,MSHFlexGrid才显示内容的,现在按你这样做,不用选择combo,MSHFlexGrid就显示内容了
caimps 2004-11-21
  • 打赏
  • 举报
回复
不是combo.text

是combo.list(i),i是combo被选中的的行数-1

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧