如何从一条记录中读取一个字段

时间:2011-10-31 23:55:12

标签: ms-access access-vba ms-access-2010 recordset

我知道我在想这个,但我想检查单个记录中的单个值/字段。例如,我想知道主键为33的记录中“closedDate”字段的值是否为空。

我在想这样的事情:

dim db as DAO.Database
dim rs as DAO.Recordset
set db = CurrentDb
set rs = db.OpenRecordset("record_holdData")

If not isNull(rs.Fields("closedDate")) then
     'do nothing
Else
     'add a close date
End If

但我不认为这是对的。它没有指定记录号。在应用程序中,表单通过绑定到相关记录来打开,但我不认为CurrentDb会考虑到这一点,而是引用整个表。

所以我的问题是,如何以这种方式打开记录集并仅在该特定记录中引用该字段?

2 个答案:

答案 0 :(得分:5)

你找到了你想要的答案,但我会改用DLookup Function

Dim db As DAO.Database
Dim strWhere As String
Dim varClosedDate As Variant
Set db = CurrentDb
strWhere = "id = 33"
varClosedDate = DLookup("closedDate","record_holdData",strWhere)
If IsNull(varClosedDate) = True Then
    'use today's date as closedDate
    db.Execute "UPDATE record_holdData Set closedDate = Date() WHERE " & strWhere
End If

答案 1 :(得分:3)

我的印象是.OpenRecordset()方法的参数只是一个表名。但事实证明你也可以发送一个查询:

set rs = db.OpenRecordset("select * from record_holdData where id = 33")