DAO Recordset vs Numerous Dlookups

DAO Recordset vs Numerous Dlookups

我为小型企业创建了一个访问数据库。在这个数据库中,我经常通过 VBA 使用

根据关键字段自动填充一些文本框
me.textboxvalue0.value = Nz(DLookup("VALUE0", "tblsomething", "lookedfield = '" & Me.keyfield.Value & "'"), "")  
me.textboxvalue1.value = Nz(DLookup("VALUE1", "tblsomething", "lookedfield = '" & Me.keyfield.Value & "'"), "")  
me.textboxvalue2.value = Nz(DLookup("VALUE2", "tblsomething", "lookedfield = '" & Me.keyfield.Value & "'"), "") 

这段代码对我所有的自动填充文本框重复,范围从 2 到 15 个文本框。 我的问题是: 打开 DAO 记录集并找到包含其所有字段的特定行是否更快,或者继续使用多个 Dlookup 按该行的字段提取字段是否更快(执行时间)。

您可以使用以下形式的 OnCurrent 事件:

Dim rst As DAO.Recordset
Dim SQL As String

SQL = "Select * From tblSomething Where lookedfield = '" & Me!keyfield.Value & "'")
Set rst = CurrentDb.OpenRecordset(SQL)
If rst.RecordCount > 0 Then
    Me!textboxvalue0.Value = rst!VALUE0.Value
    Me!textboxvalue1.Value = rst!VALUE1.Value
    Me!textboxvalue2.Value = rst!VALUE2.Value
Else
    Me!textboxvalue0.Value = Null
    Me!textboxvalue1.Value = Null
    Me!textboxvalue2.Value = Null
End If
rst.Close

Set rst = Nothing