0

これは、結果に応じてボタン(新しいリビジョンを作成できるようにする)を有効/無効にするために使用しているコードの一部です。

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の代わりに*を使用してみました...

何が間違っていたのですか?

4

2 に答える 2

2

とった。これはフォーマットの問題でした。RITn°はxx-xxの形式であるため、次のように配置する必要がありました。

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

(一重引用符を追加)

于 2011-01-04T12:17:24.483 に答える
-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を使用できます/使用する必要がありますが、それはまた別の質問です。

于 2011-01-04T12:24:38.387 に答える