Microsoft Access 掲示板

フォームのレコード数に関して

2 コメント
views

毎回大変お世話になっています。今回はフォームのレコード数に関してです。
フォームの入力済みレコード数をテキストボックス(tx件数)のコントロールソースに=Count()として表示させています。この表示は問題ありません。そのtx件数を使って下記のコードでコマンド処理の条件にしています。
   If Me.[tx件数]=0 Then
      Me.[cmd_masterIN].Enabled = True
   Else
      Me.[cmd_masterIN].Enabled =False
   End If
この処理が件数が0になっていないのに.Enabled = Trueになってしまうのです。
条件式を If Me.Recordset.RecordCount=0 に変更すると正しく処理されます。
Count(
)とRecordset.RecordCountは同じ結果の認識なのですが、違うのでしょうか?
私の知識不足と思っているのですが違いを教えて下さい。宜しくお願いします。

  

beginner
作成: 2025/10/16 (木) 09:22:23
通報 ...
1
hiroton 2025/10/18 (土) 23:34:24 0fd4e@75660

シチュエーションの詳細が不明ですね
この場合のMe.[tx件数]Count(*)は完全に同一のものというわけではないので、特定の場合において、Count(*)のつもりでMe.[tx件数]を使用した場合に不具合が起こることはあり得ます

Count(*)Recordset.RecordCountはまず同一とみてかまわないですが

2
beginner 2025/10/21 (火) 12:52:42 9eaf4@2128d

hirotonさん ありがとうございます。
その後色々コード等変更等している内にCount(*)でも正常になりました。他の処理との兼ね合いだったかもしれません。様子見て見ます。お騒がせしました。