我是用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 SubPrivate Sub MSHFlexGrid_Click()
With MSHFlexGrid
.Col = 0
A.Text = .Text
.Col = 1
B.Text = .Text
End With
End SubMSHFlexGrid能正常显示数据,但就不知道为什么我点击MSHFlexGrid里的各项数据却永远只能选择第一行的,二三等行的就不能选择了。请问有办法解决吗?我发觉要是把"select * from user where ID ='" & Trim(combo.Text) & "'"的" & Trim(combo.Text) & "换成具体的数据就能解决,但这就没意义啦,请帮帮忙!!!
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 SubPrivate Sub MSHFlexGrid_Click()
With MSHFlexGrid
.Col = 0
A.Text = .Text
.Col = 1
B.Text = .Text
End With
End SubMSHFlexGrid能正常显示数据,但就不知道为什么我点击MSHFlexGrid里的各项数据却永远只能选择第一行的,二三等行的就不能选择了。请问有办法解决吗?我发觉要是把"select * from user where ID ='" & Trim(combo.Text) & "'"的" & Trim(combo.Text) & "换成具体的数据就能解决,但这就没意义啦,请帮帮忙!!!
With MSHFlexGrid
.Col = 0
A.Text = .Text
.Col = 1
B.Text = .Text
End With
End Sub
你这个点击事件有错误啊,你已经把MSHFlexGrid控件的内容位置确定死了,所以你只能获得第一行的数据,你应该动态的控制.col的值,也就是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
你可以这样解决:在用set mshflexgrid.datasource之前你先判断所查询的结果集是否有记录,假如无,则不要set mshflexgrid.datasource这么做,你就:
mshflexgrid.clear
mshflexgrid.rows=mshflexgrid.FixedRows