0

我有一个包含多个子表单的表单。
我希望有以下行为:在主窗体的最后一个字段或子窗体的最后一个字段中按 tab 键,焦点会根据定义的Tab order移动到下一个子窗体或返回主窗体。
为此,所有子表单以及主表单都将Cycle属性设置为Current page
所有子表单都在主表单中显示为数据表,但在表单视图中显示的除外。现在我得到了我想要的行为,它只适用于主表单和显示为数据表的子表单,而不是显示为Form的子表单。

这是 access 2003 中的正常行为吗,还有其他一些我必须更改的属性吗?

注意:如果我将“行为不端”表单的默认视图更改为数据表,它也会按照我的意愿行事......

我做错了什么?
而且...如果这是访问 2003 的工作方式...鉴于我找不到 OnTab 方法,使用 vba 获得所需行为的最佳方法是什么?

编辑:在等待了解是否可以在表单中设置正确的属性时,我在“行为不端”子表单的第一个和最后一个字段中使用此代码实现了所需的行为。

'In the last field
Private Sub Posizione_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = vbKeyTab And Shift = 0) Then
        KeyCode = 0
        Me.Parent!Autore_Subform.SetFocus
    End If
End Sub

'in the first field
Private Sub Stanza_KeyDown(KeyCode As Integer, Shift As Integer)
    If (KeyCode = vbKeyTab And Shift = 1) Then
        KeyCode = 0
        Me.Parent!Pagine.SetFocus
    End If
End Sub
4

1 回答 1

0

我只是在寻找同一个问题的答案,并通过谷歌找到了这个:Ctrl-Tab 将从子窗体中的最后一个控件移动到主窗体中的下一个控件。我通过实验(使用 Access 2007)发现,哪个控件在子窗体中具有焦点并不重要,Ctrl-Tab 会将您从子窗体弹出到主窗体中的下一个控件。

于 2013-10-05T05:55:46.180 回答