【问题标题】:MS Access - go to another subform using the same record idMS Access - 使用相同的记录 ID 转到另一个子表单
【发布时间】:2012-05-16 02:45:38
【问题描述】:

我有一个带有选项卡控件的主窗体,每个选项卡都有不同的子窗体。其中两个子表单具有相同的基础查询(项目列表)。我有一个按钮,我想将用户从第一个选项卡带到第二个选项卡,但我希望第二个选项卡上的记录与第一个选项卡上的记录相同。

例如,如果这是结构(但在 frmMaster 和子窗体之间是一个选项卡控件,但我认为这不会影响我正在尝试做的事情):

frmMaster
- frm_Sub1 (on the first tab)
- frm_Sub2 (on the second tab)

用户在 frm_Sub1 上导航某个项目,我希望他们能够点击一个按钮,他们将被带到 frm_Sub2 上的同一项目记录。我可以将焦点设置在第二个选项卡上(使用 Forms!frmMaster.form!TabCtl0.Pages(1).SetFocus),但我无法让该选项卡上的子表单跳转到正确的记录。我认为这只是我如何尝试引用子表单的问题——有什么建议吗?谢谢。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    假设我在主窗体上有一个命令按钮:

    Private Sub ACommand_Click()
      Me.SubformControlOnPage2Name.SetFocus
      With Me.SubformControlOnPage2Name.Form.Recordset
          .FindFirst "AKeyID=" & Me.SubformControlOnPage1Name.Form.ASimilarKey
      End With
    End Sub
    

    您无需引用页面即可引用该页面上的控件。控件对于表单是唯一的。小心使用子表单控件的名称,而不是包含的表单名称。

    编辑评论

    假设我在第一个子窗体上有一个命令按钮:

    Private Sub ACommand_Click()
      Me.Parent.SubformControlOnPage2Name.SetFocus
      With Me.Parent.SubformControlOnPage2Name.Form.Recordset
          .FindFirst "AKey=" & Me.AKey
      End With
    End Sub
    

    【讨论】:

    • 非常感谢,Remou——我在这里有点困惑,因为按钮位于第一个子表单上,所以当我去编辑代码时,代码在该表单的类对象中。我很谨慎地移动按钮,因为这会影响可用性。我考虑将代码移动到模块中,但这不会影响使用“我”的能力吗?
    • 我已经添加了另一个例子。
    • 谢谢!这很有帮助。不幸的是,我现在收到 AKey 错误(“Microsoft Jet 数据库引擎无法将 'AKey' 识别为有效的字段名称或表达式”)。我试过研究它,但在“AKey”上找不到任何东西。我正在使用 Access 2003——这可能是问题吗?
    • 抱歉,Remou——我现在意识到这只是对 id 的引用。出于某种原因,我将其视为关键字。像魅力一样工作!非常感谢。
    • 很公平,我已经为下一个人编辑了。很高兴我能帮上忙。
    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2023-03-11
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多