Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何从一条记录中读取一个字段_Ms Access_Vba_Ms Access 2010_Recordset - Fatal编程技术网

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

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

我知道我想得太多了,但我想检查单个记录中的单个值/字段。例如,我想知道主键为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
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,因为它不包括创建记录集对象的开销。然而,如果没有精确的测试方法,我怀疑您是否会注意到差异。如果性能在您的情况下非常关键,请对它们进行测试。