请问:
1、Access中。
2、窗体中有90个TextBox控件。
3、我在VBA中想用循环来将这90个TextBox分别置值。类似如下:
   for i=0 to 89
       me.controls(i)=arr(i)   '注:arr(90)是已定义且已赋值的数组
   next i
请教如何写这段代码?(我用me.controls(i)时提示出错)

解决方案 »

  1.   

    Dim arr(2) As String
    arr(0) = "0"
    arr(1) = "1"
    arr(2) = "2"
    Dim cc As Control
    For Each cc In Me.Controls
        If UCase(TypeName(cc)) = "TEXTBOX" Then
            cc.Text = arr(cc.Index)
        End If
    Next
      

  2.   

    上面代码中,界面上有3个TEXTBOX,分别为TEXT1(0) ---  TEXT(2)
    你有90个也是一样处理,反正你之前设好了arr数组,要确定arr数组与TEXTBOX的索引Index相对应。
      

  3.   

    Dim i, j As Integer
    Dim a(1) As String
    a(0) = "myh"
    a(1) = "gyp"
    j = 0
    For i = 0 To Me.Controls.Count - 1
       If TypeName(Me.Controls(i)) = "textbox" Then
          Me.Controls(i).SetFocus
          Me.Controls(i).Text = a(j)
          j = j + 1
       End If
    Next i
      

  4.   

    不好意思,现在才上来。谢谢各位了!1、在用 rainivy(Rain) 方法时提示出错(我对“arr数组与TEXTBOX的索引Index相对应”不是很明白):
    对象不支持该属性和方法
    cc.Text = arr(cc.Index)2、用 myhgyp(也许是这样的,信不信由你) 的方法可行。不过如果要锁定数据的话就要在写数据之前先令locked=false,写完后再令locked=true进行锁定。
      

  5.   

    汗,你的TEXTBOX是不是一个数组????
    那么arr数组与TEXTBOX的索引Index相对应的意思就是:
    TEXTBOX(0) = arr(0)
    TEXTBOX(1) = arr(1)
    TEXTBOX(2) = arr(2)
    TEXTBOX(3) = arr(3)
    TEXTBOX(4) = arr(4)
    .
    .
    .
    如果你的TEXTBOX不是一个控件数组cc.index就会出现你上面的提示