как читать одно поле из одной записи - PullRequest
4 голосов
/ 01 ноября 2011

Я знаю, что думаю над этим, но я хочу проверить одно значение / поле в одной записи. Например, я хочу знать, является ли значение поля «closedDate» в записи с первичным ключом 33 нулевым или нет.

Я думал что-то вроде:

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 ]

5 голосов
/ 01 ноября 2011

Вы нашли ответ, который хотели, но я бы вместо этого использовал 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
3 голосов
/ 01 ноября 2011

У меня сложилось впечатление, что аргумент метода .OpenRecordset () должен был быть только именем таблицы.Но, оказывается, вы тоже можете отправить ему запрос:

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