|
分類:[.NET 全般]
いつもお世話になっております、PATIOです。
前回はAccess2010のRequeryが効かなくなる件でお世話になりました。
今回もAccess2010での質問になります。
データそのものはMySQLで管理されており、別の端末上に存在しています。 画面周りをAccess2010で作成する為にODBCドライバ経由でリンクテーブルを使って データにアクセスしています。
コンボボックスが三つ、コマンドボタンが四つ配置された画面があり、 三つのコンボボックスは連動してます。 画面を開いた直後はコンボボックス1のみ有効で他は無効の状態です。
コンボボックス1で項目を選択するとコンボボックス2が有効になり、 コンボボックス2のリストにコンボボックス1で選んだ項目を条件に 絞り込んだ値のリストが設定されます。
さらにコンボボックス2で項目を選択するとコンボボックス3が有効になり、 コンボボックス3のリストにコンボボックス2で選んだ項目を条件に 絞り込んだ値のリストが設定されます。
このコンボボックスの連動時はRDBへの問い合わせが発生するので 多少時間がかかるのはわかるのですが、コンボボックス3で項目を選択した時に 選んだ事で画面上のコマンドボタンを有効にするようにコードを書いています。
問題はこのコンボボックス3を選択した際にコマンドボタンが有効になるまで 時間がかかるという点です。コンボボックス3は既に設定されているリストから 値を選択するだけなのでRDBへの問い合わせは発生しません。 あまりにも遅いのでコンボボックスのChangeイベント時のプロシージャの 先頭にブレイクポイントを設定し、確認しましたが、 時間がかかっているのはコンボボックス3を操作してから プロシージャの先頭に来るまでの時間がかかっており、プロシージャ内は ほとんど時間がかかっていないことを確認しています。
但し、遅いのは当該システムを立ち上げた後の初回の一回のみで 二回目以降はこちらの期待したレスポンスが出ている為、 何が悪くてこのような状態になっているのかがよくわからない状態です。
以前にも書いていますが、Accessを使ってシステムを組むのは初めてなので Accessを使い慣れている人には常識的な部分が落ちている可能性は十分あります。 何か気が付いたことがありましたら、ぜひご意見をお聞かせください。
例によって情報等が足りない部分がありましたら補完しますので 指摘をよろしくお願いいたします。
|