我有一个包含多个子表单的表单。
我希望有以下行为:在主窗体的最后一个字段或子窗体的最后一个字段中按 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