无法在VBA(访问)中循环以将项目放在表单上并正确定位它们

时间:2010-10-27 23:01:24

标签: ms-access-2007

我一直试图制作一个包含68个项目的表单,同时通过循环将所有项目放在表单上,​​但是这个循环不起作用:(有人可以帮助我让这个工作吗?我试过了到处寻找但看不到该怎么做:/

  Dim Items(67) As String
  For x = 0 To 67
    Items(x) = "Ctl" & x
  Next

  #It goes from 1 here as I manually set up 1 otherwise (x - 1) wont work.
  For x = 1 To 67
    Form_Home.Items(x).Top = 0
    Form_Home.Items(x).Left = (Form_MainScreen.Items(x - 1).Left) + (Form_MainScreen.Items(x - 1).Width)
    Form_Home.Items(x).Height = 225
    Form_Home.Items(x).Width = 500
  Next

谢谢大家:)

1 个答案:

答案 0 :(得分:1)

Form_Home.Items 是什么意思?如果你已经在表单中添加了控件,可能会有一个Controls集合,所以你可以迭代它并设置它的属性,假设每个控件都有一个名称​​ Ctl0,Ctl1,Ctl2 ...... 然后你可以按照以下步骤继续:

Dim ct_name as String
Dim ct_name_before as String
For x = 1 To 67
   ct_name_before = "Ctl" & CStr(Cint(x-1))
   ct_name = "Ctl" & CStr(x)
   Form_Home.Controls(ct_name).Top = 0
   Form_Home.Controls(ct_name).Left = (Form_MainScreen.Items(ct_name_before).Left) + _
                                      (Form_MainScreen.Items(ct_name_before).Width)
   Form_Home.Controls(ct_name).Height = 225
Next

某些版本的VBA允许您创建共享所有相同名称且具有不同索引的控件数组,然后您可以遍历数组以获取每个控件。