初めて質問します。よろしくお願いします。
ACCESS2000だけで開発しています。
あるフォームのテキストボックスとコマンドボタンを使って、フィルタを実行させました。
フォーム内のテキストボックスに現在のレコードと抽出されたレコード数を表示させます。
Private Sub SERCH_Click()
Me.Filter ="管理番号 =" & me![keyword]
Me.FilterOn = True
call レコード表示
End Sub
Private Sub レコード表示()
Me![txtレコード数] = Me.Recordset.RecordCount・・・ブレークポイント
Me![txt現在のレコード] = Me.CurrentRecord
End Sub
しかし、txtレコード数が必ず1になります。
フォームの移動ボタンの付近には10が表示されるのに、どうしてでしょうか?
コードは書きませんが、レコード移動時のイベントも別に設定していて、そのイベント内でも 「Call レコード表示」しています。
結果、レコード表示は2回実行してることになりますが、これが問題あるのでしょうか?
デバッグのため、上記のところブレークポイントを設定すると何故かうまくいきます。
つまり、一時停止をすることによりうまくいくような気がするのですが・・・
元になるクエリの計算スピードとコードの実行スピードが関係するということがあるのでしょうか?
現在、手詰まりです。よろしくお願いします。
カーソルタイプを確認してみてください。
『エクスパート望月宏一のAccess相談室』
Vol.3 Recordsetのレコード総数を数える
http://web.archive.org/web/20010419100234/www2.gihyo.co.jp/series.asp?ID=17
魔界の仮面弁士さん、ありがとうございました。
『エクスパート望月宏一のAccess相談室』を参考にして、
フォームの元クエリに並べ替えを設定することで解決できました。
大変勉強になりました。
ツイート | ![]() |