我有一个包含列表框的表单。我正在尝试更改列表框的顺序。我尝试将前面或发送回来,但它们不在表单视图中工作。我找到了 z index 属性来安排它们的优先级。但是,以下代码不起作用。这是正确的方法吗?或者有没有其他方法可以使用或不使用代码来做到这一点?
Me.Controls.SetChildIndex (Me.List0 , Me.List1)
谢谢你的帮助。
docmd.RunCommand acCmdDesignView
forms("form1").Controls("text0").inselection=true
docmd.runcommand acCmdSendToBack '(or docmd.runcommand acCmdBringToFront)
docmd.RunCommand acCmdFormView
此外,Access 2016 仍然不支持 ZOrder。因此,我还没有学会编写单行代码将控件置于其他两个之间的方法,我只是将中间发送到后面,然后再发送到后面,并将其扩展到必须重叠的许多控件。
最后,即使您将 VBA 用于ZOrder
,您的英语听起来确实像forms("form1").Controls("text0").TabIndex=34
,正如 Olek 建议的那样,这也很简单。
不使用代码:您可以通过右键单击任何控件并选择“位置”然后选择“放在前面”或“放在后面”来更改 z 顺序。
不幸的是,Access 不支持使用ZOrder
代码进行操作的方法。Microsoft Forms确实支持ZOrder
在 Access 帮助中出现时可能会令人困惑的方法。
当我重读您的问题时,我想知道您是否在谈论标签顺序。如果是这样,右键单击并调出“属性”,选择“其他”选项卡,然后调整“选项卡索引”属性。此外,请确保紧接下方的“制表位”属性设置为“是”。在代码中,您将使用FormName.ControlName.TabIndex=0
将控件设置为第一个制表符位置。
希望这可以帮助!
参考:个人经历(以及数小时的挫败感)
我在一个 Access 表单上执行了此操作:我想要在顶部的控件我只是将其剪切并粘贴回表单,然后将其移动到我想要覆盖的那个上。在这种情况下,它是一个文本框(已绑定),与组合框(未绑定)的大小几乎相同;只有组合的下拉菜单向文本框的右侧扩展了一点,所以当加载表单时,文本框看起来像一个组合框。用户单击下拉菜单并做出选择,拉出的记录会反映在文本框中。