ACCESS / VBA:无法使Dcount正常工作

时间:2011-01-04 11:16:34

标签: ms-access vba access-vba ms-access-2010

这是我用于启用/禁用按钮(允许创建新版本)的代码的一部分,具体取决于结果。

如果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 个答案:

答案 0 :(得分:2)

得到了它。 这是一个格式问题: RITn是xx-xx的形式,所以我不得不这样说:

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

(添加单引号)

答案 1 :(得分:-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,但这是另一个问题!