質問

結果に応じて、ボタンを有効/無効にするために使用しているコードの一部(新しい改訂を作成できる)を使用しています。

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)

(単一の引用符を追加)

他のヒント

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