Ms access 如何从一条记录中读取一个字段
我知道我想得太多了,但我想检查单个记录中的单个值/字段。例如,我想知道主键为33的记录中“closedDate”字段的值是否为null 我的想法是:Ms access 如何从一条记录中读取一个字段,ms-access,vba,ms-access-2010,recordset,Ms Access,Vba,Ms Access 2010,Recordset,我知道我想得太多了,但我想检查单个记录中的单个值/字段。例如,我想知道主键为33的记录中“closedDate”字段的值是否为null 我的想法是: 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 El
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
没有考虑到这一点,而是引用了整个表
所以我的问题是,如何以这种方式打开记录集并仅在特定记录中引用此字段?我的印象是.OpenRecordset()方法的参数仅为表名。但事实证明,您也可以向其发送查询:
set rs = db.OpenRecordset("select * from record_holdData where id = 33")
你找到了你想要的答案,但我会用
Dim db作为DAO.Database
作为字符串的Dim strWhere
Dim varClosedDate作为变体
Set db=CurrentDb
strWhere=“id=33”
varClosedDate=DLookup(“closedDate”,“记录保持数据”,strWhere)
如果IsNull(varClosedDate)=True,则
'使用今天的日期作为结束日期
db.Execute“UPDATE record\u holdData Set closedDate=Date()WHERE”&strWhere
如果结束
我没有做比较测试。id字段上有一个索引,您的记录集解决方案和此解决方案都应该是快速的。如果让我猜的话,我会选择DLookup,因为它不包括创建记录集对象的开销。然而,如果没有精确的测试方法,我怀疑您是否会注意到差异。如果性能在您的情况下非常关键,请对它们进行测试。