dポイントプレゼントキャンペーン実施中!

お世話になります。
表題の件についてですが、現在Windows7 Pro SP1でAccess2007を使用し、ファイル形式は".accdb"でAccessシステムを開発しております。

そのシステムの中に下記の仕組みがあります。

・F_メインフォーム内にタブコントロールが1つあり、ページ数は7ページで1ページにサブフォームを3つずつ配置し、合計21のサブフォームを設置。
・1ページに3つずつあるサブフォームの内、各1つのサブフォームのコントロールソースには"T_マス
タ"テーブルをもとに作成したクエリをそれぞれ設定。

イメージ)

サブフォーム1:コントロールソース⇒Q_クエリ1(特定した日付でT_マスタから抽出)
サブフォーム2:コントロールソース⇒Q_クエリ2(特定した日付でT_マスタから抽出)
サブフォーム3:コントロールソース⇒Q_クエリ3(特定した日付でT_マスタから抽出)
サブフォーム4:コントロールソース⇒Q_クエリ4(特定した日付でT_マスタから抽出)
サブフォーム5:コントロールソース⇒Q_クエリ5(特定した日付でT_マスタから抽出)
サブフォーム6:コントロールソース⇒Q_クエリ6(特定した日付でT_マスタから抽出)
サブフォーム7:コントロールソース⇒Q_クエリ7(特定した日付でT_マスタから抽出)

・F_メインフォームを開くと、各サブフォームの複数のテキストボックスなどにクエリに沿ったレコードが表示されており、その各テキストボックスのコントロールソースにはQ_クエリのフィールド(T_マスタ)を設定しているため、データの直接修正を可能としています。

このような仕組みを構築し、実際にF_メインフォームを開き、テキストボックスなどに表示されているデータに「修正を加えたとき」又は、修正後、F_メインフォームを「閉じたとき」に、Microsoft Accessは動作を停止しましたの表示から、強制終了して落ちてしまいます。。。

この原因ですが、いくらクエリを使用していても、複数のサブフォームに一つのテーブルを使用して、データを直接更新したりするのはまずいのでしょうか?

この問題が解決できずに今、本当に困っています。。。

どなたか詳しい方、ご教授をよろしくお願い致します・・

A 回答 (2件)

Access2007は持ち合わせておりませんので、ご参考までに。


私だったら・・、21個のサブフォーム(クエリ)を配置するのではなく
一つのサブフォームで必要に応じて元になっているクエリの抽出条件を
変えるようにすると思います。
21の条件が固定できるなら、コンボボックスで一覧の選択変更時に行うとか・・。

現状のまま進めてゆくのでしたら、改善するかどうかは不明ですが
『名前の自動修正』オプションのチェックを外してみたらどうですか?

どこかのテキストボックスの値を変更後にリクエリ(Shift + F9)を
行っても強制終了になってしまいますよね。
ダメもとで、新規Accdbに全てインポートして試してみるとか。
21のクエリで重複したレコードを選択していないかとか。
    • good
    • 1
この回答へのお礼

ご回答有難うございます。

名前の自動修正のチェックを外し、新規DB(Accdb)にインポートしましたが、結果は変わらずでした・・・

ただ、21個のサブフォームはさすがに多すぎるからかもと思いまして、サブフォームの数を減らす方向で対応したいと思います。

お礼日時:2011/08/18 09:07

以下を試してもハングするようでしたら、プログラムの問題かAccessのバグかもしれませんね。



・Windows Updateの設定で下記にチェックを入れる
 推奨される更新プログラム
 Windows Update
 ソフトウェアに関する通知
「更新プログラムの確認」をクリックしてAccess関係を調べてインストールする

・ディスクのクリーンアップを実行する
・Accessのヘルプからアプリケーションの自動修復を実行する
(バージョンによっては?)
・Accessを再インストールする
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

WindowsUpdateなど、頂いたご回答の方法は試しましたが、結果は変わらず・・・
Accessのバグなのでしょうか?

サブフォームの数が多すぎるため、動作を停止してしまうのかなとも思いますのでサブフォームの数を減らして対応を検討します。

お礼日時:2011/08/18 09:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!