Вопрос

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

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

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

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

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

Что я ошибся?

Это было полезно?

Решение

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

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

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

Другие советы

Первое, что 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, если вы просто используете таблицы доступа, но это еще один вопрос для другого времени!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top