Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问VBA如何选择上次添加的记录?_Ms Access_Vba - Fatal编程技术网

Ms access 访问VBA如何选择上次添加的记录?

Ms access 访问VBA如何选择上次添加的记录?,ms-access,vba,Ms Access,Vba,我有一个带有子窗体的访问窗体。子窗体有一个数据表。主窗体具有下拉框和按钮,用于将记录添加到子窗体。这一切都很好(VBA代码)。现在,我想突出显示最近插入的记录,就像我单击了行标题一样 我该怎么做呢?主窗体的组合框仍应在tpoint处设置为正确的记录,因此如何突出显示子窗体记录?使目标记录成为子窗体的当前记录。然后使用RunCommand来“选择”它。。。这也将突出记录 DoCmd.RunCommand acCmdSelectRecord 似乎您的问题正在演变为“如何使最后添加的记录成为当前记录

我有一个带有子窗体的访问窗体。子窗体有一个数据表。主窗体具有下拉框和按钮,用于将记录添加到子窗体。这一切都很好(VBA代码)。现在,我想突出显示最近插入的记录,就像我单击了行标题一样


我该怎么做呢?主窗体的组合框仍应在tpoint处设置为正确的记录,因此如何突出显示子窗体记录?

使目标记录成为子窗体的当前记录。然后使用
RunCommand
来“选择”它。。。这也将突出记录

DoCmd.RunCommand acCmdSelectRecord
似乎您的问题正在演变为“如何使最后添加的记录成为当前记录”

如果最后添加的记录仍然是当前记录,那么您已经在那里了,所以没有问题

如果用户在添加最后一条记录后导航到另一条记录,则至少有两种方法返回该记录

  • DoCmd.GoToRecord
  • 对记录集克隆使用查找方法
  • 选择最适合您的情况的方法。如果组合框的绑定值是最后添加的行的数字主键,则可以尝试第二种建议,方法是用实际使用的名称替换
    pkey\u字段
    YourComboNameHere
    、和
    子表单控件

    Private Sub FindLastRecordAdded()
        Dim rst As DAO.Recordset
        Dim strCriteria As String
    
        strCriteria = "[pkey_field] =" & Me.YourComboNameHere
    
        Set rst = Me.SubformControl.Form.RecordsetClone
        rst.FindFirst strCriteria
        If rst.NoMatch Then
            MsgBox "Oops. This shouldn't happen.", vbInformation
        Else
            Me.SubformControl.Form.Bookmark = rst.Bookmark
        End If
    
        Set rst = Nothing
    End Sub
    

    如何从主窗体使其成为当前记录?现在我很困惑。您正在子窗体中添加记录。您希望突出显示上次添加的记录。我想这意味着它在子窗体中。同一条记录是否也被添加到主窗体?没有,但是插入它的代码是在主窗体中,我认为这也是放置选择代码的逻辑位置?除非另有选择?啊,当然!我会在子窗体控件上尝试
    SetFocus
    ,然后
    acCmdSelectRecord
    。对,RunCommand只接受一个参数。RunCommand将替换不推荐使用的DoMenuItem方法。。。基本上,其中一个执行菜单系统中定义的特定操作。