Ms access 2007 在VBA(access)中循环以将项放置在窗体上并正确定位它们时遇到问题

Ms access 2007 在VBA(access)中循环以将项放置在窗体上并正确定位它们时遇到问题,ms-access-2007,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

我一直在尝试创建一个包含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

谢谢大家:)

你说的Form_Home.Items是什么意思?如果您已经在表单中添加了控件,那么可能有一个控件集合,所以您可以通过它进行迭代并设置其属性,假设每个控件的名称为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允许您创建共享相同名称和不同索引的控件数组,然后您可以迭代数组以获取每个控件。

您认为为什么需要这样做?