• 締切済み

(アクセス)全てのイベントプロシージャが無反応に

何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件)  を表示しています。  フォームBで他のフォームと異なっているプロパティは次の通りです。  ・ポップアップ ----はい  ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス  が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの   データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す  るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ  を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。   =コンボ186.column(1)   ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました  =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。  ・フォームBをデザインビューで開く  ・フォームBを開く時に設定しているイベントプロシージャを表示  ・イベントプロシージャをいじって閉じる。(内容は変更しない)  ・フォームBをホームビューで開く   だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。

みんなの回答

回答No.2

> ※コンボボックスAのデータは表示するものの、どのデータを選択しても警告音が出て何も選択で   きずエラーメッセージ等も何も表示されません。新たにコンボボックスを作り直しても同じです。 >  しかし、試しにレコードソースがクエリーでないコンボボックスを作成してみたところ正常に選択する ことができるためレコードソースがクエリーの場合に問題があるようです。 「レコードソースがクエリーでないコンボボックス」の「レコードソース」とは、「値集合ソース」のことですか。 それとも、フォームのレコードソースをクエリにしたとき、コンボボックスで選択できないと言うことでしょうか。 値集合ソースがクエリの場合、コントロールソースのデータ型と、連結列のデータ型が一致していないとかの原因が考えられます。 フォームのレコードソースの場合、クエリが更新不可になっている可能性があります。クエリを単独で開いた場合、更新できますか。 こういったこちらで再現できない症状の原因を探すのは、推測するしかないので、こういった掲示板ではなかなか難しいですね。 ファイルをアップロードできる掲示板があればいいのですが(あっ、独り言です・・・)

回答No.1

どこかのイベントプロシージャでエラーが発生しているのかも。 下記の手順でデバッグしてみましょう。 まず、VBA画面の[デバッグ]-[*****のコンパイル]をクリックします。 (*****の部分はプロジェクト名) エラーなくコンパイルが終了するのを確認してから、上書き保存。 エラーが出たらエラー部分を修正。 次に、VBA画面の[ツール]-[オプション]-[全般]-[エラートラップ]を 「エラー発生時に中断」に変更します。 その後、問題が発生する操作を実行してみます。 エラーが発生すると、VBA画面が開きエラー箇所が判定していますので、 その部分を修正します。 修正方法が分からなければ、その前後のコードをコピーして補足に貼り付けてください。 修正後は、[エラートラップ]の設定を元に戻しておいてください。 (「エラー処理対象外のエラーで中断」) 以上で問題がでなければ、MDBファイルが破損している可能性があります。 下記を参考に修復を試みてください。 Access 2002 以降の破損したデータベースをトラブルシューティングおよび修復する方法 http://support.microsoft.com/kb/283849/ja

参考URL:
http://support.microsoft.com/kb/283849/ja
nodapapa
質問者

お礼

早速ご回答をいただきありがとうございました。 教えて頂いたとおりデバッグを試みましたがエラーは発生しませんでしたのでイベントプロシージャには問題無いようです。 次に修復を試みようと思いましたが、その前に冷静に今の症状を検証したところ次の理由によりテーブル、クエリ、インデックス等の原因で無いように思えます。  (1)常に不具合が発生しない。  (2)質問でごちゃごちゃと環境等の説明をしましたが再度検証を行った結果、不具合を引き起こすき  っかけは次の通りでした。   ・フォームBをデザインビューで開き何かの修正を行いデザインビューのままフォームを×で閉じ   た時に「保存しますか?」で「はい」を選択すると不具合が発生する。    (ACCESSを再起動しても不具合は継続)   ・フォームBをデザインビューで開き何かの修正を行いフォームビューで開いた後に×で閉じ、「保   存しますか?」で「はい」を選択すると正常に動作する。   素人考えですが、フォーム自体が壊れていると思い新しくフォームを作成しフォームBからテキストボックスやコントロール等をコピーしてみましたが、新たにトラブルが発生してしまい現在試行錯誤している状況です。 ※コンボボックスAのデータは表示するものの、どのデータを選択しても警告音が出て何も選択で   きずエラーメッセージ等も何も表示されません。新たにコンボボックスを作り直しても同じです。  しかし、試しにレコードソースがクエリーでないコンボボックスを作成してみたところ正常に選択する ことができるためレコードソースがクエリーの場合に問題があるようです。 ますます頭が混乱してしまいましたので今日はこのへんで止めて明日また冷静に考えてみたいと思います。 ありがとうございました!      

関連するQ&A