• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MSアクセス2010と2003)

MSアクセスの帳票フォームで入力用チェックボックスの更新処理に関する問題

このQ&Aのポイント
  • MSアクセスの帳票フォームで使用する入力用チェックボックスの更新処理に関して問題が発生しています。
  • チェックボックスの更新前処理で同じ場所へのダブリが発生しないような処理を行っています。
  • しかし、アクセス2003+Office2003SP1、アクセス2010+Office2010SP1の環境ではチェックボックスの更新に時間がかかる問題があります。解決策をお知りになりたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

以上と言いつつ、 最初の質問の Me.Refresh を見逃していました。 Me でフォーム全体のRefreshを行うのではなく 個々のコントロールのRefresh、Recalc、Requeryを行えませんかね? Me!コントロール名.Re… ただ、Me.Refresh を外しても若干の改善となると。。。 実際にファイルを見られればもう少し何とかなるかも?ですが やり取りはこのサイトではご法度なのでゴメン。

minoriyuki
質問者

お礼

ありがとうございます。計算を全部更新するためフォーム全体を行わないといけないと思っておりましたが、CK1だけをRequeryしてやればCK1が確定し全ての計算をやり直してくれました。2003,SP3に比べればまだまだ遅いですが、Me.CKXX,Requeryでずいぶん速くなりました。(.accdbに変更致しました)VB7.0のレジストリ値が怪しいと友人が言っておりましたので、このへんも見てみたいと思っておりますが、随分と改善致しました。ありがとうございます。

minoriyuki
質問者

補足

http://okwave.jp/qa/q7958022.html こちらの方も教えて下さい。 宜しくお願い致します。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

一つのチェックボックスを変えるだけで、 全てのチェックボックスの値が再更新されるような動きは? 何処かにイベント連鎖的なモノがあって SP3 だとAccess が気を廻してくれるのが速くて無駄な連鎖を遮断して・・かもです。 ステップ実行してみると何かが見えてくるかも? 私からは以上です。

minoriyuki
質問者

お礼

ありがとうございます。2010で更新後処理からme.refreshを外すと少し速くなりました。しかしRefreshしないと値を確定できないため同じ場所へのダブリ予防ができませんし、下のフィールドにある計算結果も出て来ません。チェックマークのチェックを付けた時に値を確定させるのにはMe.refreshだけですよね。Requeryでは恐らくもっと遅くなると思います。色々教えて頂きどうもありがとうございました。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

ん~ 個々のPCに置いてあるという事ですか。。 ネットワークの設定の違いから・・かなと踏んでたのですが違ったようですね。 となるとAccessの内部的な問題になる?ので心当たりはありません。 全体的に遅くなるのか、ある一部(一行)の処理だけに時間が掛かっているのか 経過処理時間をイミディエイトウィンドウに出力するようなのを 数か所おいておいて検証する事くらいしか思いつきません。 後は、Access2010ならACCDB形式にしたら変わるかとか Decompile して再コンパイル・最適化で変わるかなど。

minoriyuki
質問者

お礼

連絡ありがとうございます。 動きで少し見えるのですが、チェックマークをオンにすると、全てのチェックマークが1つづつ色が変わって元に戻る動きが見えました。恐らくSelect caseを見ているのではないのでしょうか。VBAの問題かな、、と思いました。おっしゃるとおり一部の問題かと思います。 ありがとうございます。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

して、そのMDBファイルはどこに置いてありますか?

minoriyuki
質問者

補足

MDBファイルはC:\DBに入れてあります。テーブルはリンクでなく正規のテーブルです。2003、SP3でネットワーク経由でも使ってみましたがスピードは問題ありませんでした。

関連するQ&A