如何在数据表中选择包含新添加记录的行,类似于列表框?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在数据表中选择包含新添加记录的行,类似于列表框?相关的知识,希望对你有一定的参考价值。

以前,我使用ListBox及其Value属性,以便从表中选择包含新添加记录的特定行。

这是通过以下方式实现的:

Me.listBox.Value = DLookup("ID", "myTable", searchCriteria)
Me.listBox.Requery

一旦我将记录插入myTable,我会调用上面的代码来刷新ListBox并选择包含新记录的行。

我已经切换到Datasheet,但它没有Value属性。

我可以调用以下内容来刷新DataSheet,但显然它没有突出显示包含新记录的行:

Forms!frmMyForm.datasheet_MySheet.Requery

完成我所描述的最佳方法是什么?

谢谢

答案

一种方法是使用书签移动到记录:

With datasheet_MySheet.Form
    .RecordsetClone.FindFirst searchCriteria
    If Not .RecordsetClone.NoMatch Then
        .Bookmark = .RecordsetClone.Bookmark
    End If
End With

...其中datasheet_MySheet是父表单上SubForm控件(数据表)的名称。

编辑:说明:

RecordsetClone是Form's Recordset的副本,其中包含表单的数据。 Recordset的FindFirst方法使匹配记录成为当前记录(在该Recordset中)。例如。如果searchCriteria"ID=6"那么它将移动到ID为6的记录。将Form的Bookmark属性设置为BookmarkRecordsetClone属性使得Form上的当前记录(因此明显选择的行)与刚才的相同发现在RecordsetClone。换句话说,它在克隆中找到记录,然后将数据表的可见位置与克隆同步。

为什么要使用克隆?

为什么使用Form.RecordsetClone.FindFirst而不是Form.Recordset.FindFirst?如果没有找到匹配,FindFirst将移动到第一行(奇怪的是,NoMatch属性返回False,表示匹配时没有)。对Form.Recordset的影响是可见的,而对Form.RecordsetClone的影响不是,所以除非你有匹配,否则你不会移动选定的记录。在您的情况下,这可能或不重要。

以上是关于如何在数据表中选择包含新添加记录的行,类似于列表框?的主要内容,如果未能解决你的问题,请参考以下文章

遍历 pandas 数据框中的行并匹配列表中的元组并创建一个新的 df 列

如何收集动态添加的行(HTML 表)的值(数据)?使用 php 和 XAMPP

如何使列表框的一个选项将数据添加到新字段

数据框

在带有文本框的列表框中,如何关注添加的文本框?

Spark数据框选择该行的任何列中至少有一个null或空白的行