如果子表单在表单视图中,访问 2003 循环当前页面不起作用

Posted

技术标签:

【中文标题】如果子表单在表单视图中,访问 2003 循环当前页面不起作用【英文标题】:access 2003 cycle current page not working if subform is in form view 【发布时间】:2013-09-15 12:49:23 【问题描述】:

我有一个包含多个子表单的表单。 我希望有以下行为:在主窗体的最后一个字段或子窗体的最后一个字段中按 tab 键,焦点根据定义的 Tab 移动到下一个子窗体或返回主窗体订购。 为此,所有子表单以及主表单都将 Cycle 属性设置为 当前页面。 除了在窗体视图中显示的子窗体外,所有子窗体都在主窗体中显示为数据表。 现在我得到了我想要的行为,它只适用于主窗体和显示为数据表的子窗体,而不是显示为 Form 的子窗体。 这是 access 2003 中的正常行为吗,还有其他一些我必须更改的属性吗?注意:如果我将“行为不端”表单的默认视图更改为 数据表 和其他人一样,它的行为也如我所愿...我做错了什么?而且...如果这是 access 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

【问题讨论】:

在 access 2.0 中,我在表单(和子表单)的末尾和开头使用了一个额外的控件,并在这些控件的 OnEnter 事件中使用代码将焦点指向正确的控件。我希望这个技巧也适用于 Access2003。 这是标准行为,因为子表单在表单视图中。使用 rene 的方法。 我也遇到了同样的问题,我也使用代码在适当的时候将焦点设置为正确的控件来解决它。 【参考方案1】:

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

【讨论】:

感谢您的提示,但实际上,解决我的问题的唯一方法是代码。我添加的一个效果很好。

以上是关于如果子表单在表单视图中,访问 2003 循环当前页面不起作用的主要内容,如果未能解决你的问题,请参考以下文章

子窗体中的子窗体控件

ASP MVC 5 从链接发布表单

.NET MVC3 中多页表单的最佳实践/设计

asp获取当前页表单值

如何使用 sql-server 后端处理访问中的表单引用查询

访问视图中的嵌套表单字段(嵌入表单集合)