ACCESS / VBA: невозможно заставить Dcount работать правильно - PullRequest
0 голосов
/ 04 января 2011

вот часть кода, которую я использую для включения / отключения кнопки (которая позволяет создать новую ревизию) в зависимости от результата.

Если dcount возвращает 0, это означает, что следующая ревизияеще не существует (и, следовательно, может быть создан), если dcount возвращает 1, это означает, что следующая ревизия уже существует (и, таким образом, кнопка будет отключена)

DCount("index_rit", "t_données_rit", "[RITn°]=" & Me.RITn°.Value & " AND [Revision]=" & Me.Revision.Value + 1)

Моя проблема в том, что по какой-то причине, даже если запись соответствует значениям, введенным в dcount, она все равно возвращает 0.

Я пробовал оба с ant без [] для полей.
Я также пытался использовать * вместо index_rit...

Что я не так понял?

Ответы [ 2 ]

2 голосов
/ 04 января 2011

понял. это была проблема формата: RITn ° имеет форму xx-xx, поэтому мне пришлось написать это так:

"[RITn°]='" & Me.RITn°.Value & "' AND [Revision]=" & Me.Revision.Value + 1)

(добавлены одинарные кавычки)

0 голосов
/ 04 января 2011

Во-первых, DCount (и другие функции «D»), как правило, немного снижают производительность. Попробуйте заменить его этой быстрой функцией. Вы просто передаете ему запрос, и он возвращает количество записей

Private Function GetRecordCount(strSearch as String) as Long
Dim rst As ADODB.Recordset
Dim RecCount As Long

Set rst = New ADODB.Recordset

With rst
   .ActiveConnection = CodeProject.Connection
   .CursorType = adOpenForwardOnly
   .LockType = adLockReadOnly
   .Source = strSearch
   .Open Options:=adCmdText
   if .EOF = true then
        RecCount=0
   else
        RecCount=.Collect(0)
   End If

   .Close
End With

GetRecordCount = RecCount

Set rst = Nothing

End Function

Это использует ADO, но может / должно использовать DAO, если вы просто используете таблицы доступа, но это другой вопрос в другой раз!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...