我知道我在想这个,但我想检查单个记录中的单个值/字段。例如,我想知道主键为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
会考虑到这一点,而是引用整个表。
所以我的问题是,如何以这种方式打开记录集并仅在该特定记录中引用该字段?
答案 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")