乐高主题墙:VB中for的问题

来源:百度文库 编辑:高校问答 时间:2024/04/28 08:43:51
设有N个index=0的控件,作为以后动态新建控件,用于读取数据库记录(rs):
txtProduct(0)
txtUnit(0)
txtNumber(0)
txtPrice(0)
txtTotal(0)

代码大致如下:
'这是动态建立新的表行
Private Sub drawValue(index As Integer)
Load txtProduct(index)
Load txtUnit(index)
Load txtNumber(index)
Load txtPrice(index)
Load txtTotal(index)

txtProduct(index).Visible = True
txtUnit(index).Visible = True
txtNumber(index).Visible = True
txtPrice(index).Visible = True
txtTotal(index).Visible = True

'品名,数量,单价,合价
txtProduct(index).Text = Rs.Fields("product").Value
txtUnit(index).Text = Rs.Fields("unit").Value
txtNumber(index).Text = Rs.Fields("number").Value
txtPrice(index).Text = Rs.Fields("price").Value
txtTotal(index).Text = Rs.Fields("total").Value

'品名位置
txtProduct(index).Left = shpRect(1).Left + (hLine(1).X1 - shpRect(1).Left) / 2 - txtProduct(index).Width / 2
txtProduct(index).Top = Line1(l - 1).Y1 + 150 - txtProduct(index).Height / 2
'单位位置
txtUnit(index).Left = hLine(1).X1 + (hLine(2).X1 - hLine(1).X1) / 2 - txtUnit(index).Width / 2
txtUnit(index).Top = txtProduct(index).Top
'数量位置
txtNumber(index).Left = hLine(2).X1 + (hLine(3).X1 - hLine(2).X1) / 2 - txtNumber(index).Width / 2
txtNumber(index).Top = txtProduct(index).Top
'单价位置
txtPrice(index).Left = hLine(3).X1 + (hLine(4).X1 - hLine(3).X1) / 2 - txtPrice(index).Width / 2
txtPrice(index).Top = txtProduct(index).Top
'合价位置
txtTotal(index).Left = hLine(4).X1 + (hLine(5).X1 - hLine(4).X1) / 2 - txtTotal(index).Width / 2
txtTotal(index).Top = txtProduct(index).Top
End Sub

问题如下:
要调用上面sub时,如果用
Call drawValue(1)
Rs.MoveNext
Call drawValue(2)
Rs.MoveNext
Call drawValue(3)
Rs.MoveNext
Call drawValue(4)
Rs.MoveNext
Call drawValue(5)
Rs.MoveNext
Call drawValue(6)
Rs.MoveNext
Call drawValue(7)
Rs.MoveNext
Call drawValue(8)
Rs.MoveNext
Call drawValue(9)
Rs.MoveNext
Call drawValue(10)
Rs.MoveNext
则可以正常得到运行结果.

但如果改成for循环或Do while的
For j = 1 To 5
Call drawValue(j)
Rs.MoveNext
Next
则只可以得到第一项记录, 控件也只新建出一个..

奇怪!
望高手指教!!!

把j定义成全局变量呢?
今天我用timer控件的时候就因为这个郁闷了一次

应该不会啊,DAO吗???我都是用While穷举所有数据的

怎么不用穷举办法?