帳票フォームで入力したデータを変更したりしているのですが
変更に伴って入力値に対し、テキストの色を変更しています。
しかし帳票フォームのデータ量が多くなると、1個のレコード?行?を変更し、更新されるときに
全レコード更新されるので、再表示までに毎入力、時間がかかってしまいます、
できるかわからないですが、変更したレコード?行?のみ更新する方法などありませんでしょうか?
帳票フォームで入力したデータを変更したりしているのですが
変更に伴って入力値に対し、テキストの色を変更しています。
しかし帳票フォームのデータ量が多くなると、1個のレコード?行?を変更し、更新されるときに
全レコード更新されるので、再表示までに毎入力、時間がかかってしまいます、
できるかわからないですが、変更したレコード?行?のみ更新する方法などありませんでしょうか?
>更新されるときに全レコード更新されるので、再表示までに毎入力、時間がかかってしまいます、
1つのレコード更新時に、全てのレコードをもう一度更新するようなコードを書いていませんか?取り敢えず、テキストの色を変更するコードをOFFにして確認してみるといいかも。
色の変更は条件付き書式で変更しています。
データを入力しても 条件付き書式が動作してくれないので
DoCmd.Requery "" を行って更新している状況です
もし、それを外して改善するならば、まずは外し、色の変更は別の質問で誰かに教えて貰うとか。
Me.Refresh
あるいは
Me.Recalc
でどうでしょう
Me.Recalc で少しはやくなりました!
条件付き書式は重い処理になるので、別案を検討してみるといいかも。
方法としては下記で紹介している方法の応用になります。下記では背景色ですが、前面色(文字色)を対象に同じ設定にします。
カレント行の背景色の変更 その3 - hatena chips
文字色を変更したいテキストボックスの前面にぴったり重なるようにテキストボックスを配置して下記のように設定します。
=IIf(条件式,[フィールド名],"")
上記のテキストボックスのフォーカス取得時のイベントプロシージャ
元のテキストボックスの更新後処理