关于DATAGRID的行数问题

raygts 2006-01-10 10:05:33
有一段代码如下:
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
j = rs.RecordCount - 1
With DataGrid1
For i = 0 To j
.Row = i
.Col = 2
.Columns(2).Text = Val(.Text) * Val(Text1.Text)
Next
End With
Text1.Text = ""
End Sub
由于屏幕大小问题,DATAGRID控件只能显示35行左右,而rs.RecordCount 返回一般有100到200行左右的记录,所以就造成了在运行时出现行号错误的报错,请问个位高手这种现象如何解决??小弟苦想了3天都无法解决问题,求高手指点一二
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2006-01-11
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
rs.MoveFirst '假定 DataGrid1 绑定到 rs
With DataGrid1
Do Until rs.EOF
.Columns(2).Text = Val(.Columns(2).Text) * Val(Text1.Text)
rs.MoveNext
Loop
End With
Text1.Text = ""
End Sub
faysky2 2006-01-10
  • 打赏
  • 举报
回复
是第三列的值改变话,这样:

Private Sub Command1_Click()
Dim rs2 As New ADODB.Recordset
If rs2.State = 1 Then rs2.Close
'下面这个语句请你自己改一下
rs2.Open "select 列1,列2,列3 * " & Val(Text1(0).Text) & " as 列3 ,列4,列5,...... from table1 ", cn, adOpenDynamic, adLockBatchOptimistic

Set DataGrid1.DataSource = rs2
End Sub
faysky2 2006-01-10
  • 打赏
  • 举报
回复
如果你还是因为以前的那个问题的话,不要用For循环了,可以改为这样:

Private Sub Command1_Click()
Dim rs2 As New ADODB.Recordset
If rs2.State = 1 Then rs2.Close
'下面这个语句请你自己改一下
rs2.Open "select 列1 * " & Val(Text1(0).Text) & " as 某个别名 ,列2,列3,...... from table1 ", cn, adOpenDynamic, adLockBatchOptimistic

Set DataGrid1.DataSource = rs2
End Sub
饮水需思源 2006-01-10
  • 打赏
  • 举报
回复
With DataGrid1
.rows=j+1
For i = 0 To j
.Row = i
.Col = 2
.Columns(2).Text = Val(.Text) * Val(Text1.Text)
Next
End With

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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