プロが教える店舗&オフィスのセキュリティ対策術

Access2007でアプリケーションを作っていますが、お客様先で以下のエラーがでました。
「このオブジェクトは正しくない形式で保存されており、読み取ることができません。」
また、存在する20数個のテーブルのうち、半分程がアプリケーションからなくなっていました。
プログラム上でテーブルそのものを削除するロジックは入っていません。

全く原因が分からないのですが、上記のような現象ってどうして起こるのでしょうか?

A 回答 (3件)

yuji_from_kyotoです。



超予想なのですが、
コンボには、テーブル/クエリで、常に対象テーブルの値を参照していると思われ、お客様の複数回処理で、
レコードロック等かかっているかも知れません。
テーブルが消去(破壊)された原因は毛頭想像つきませんが…(笑)

もしもカスタマイズするなら、DAOやADOでテーブルから値を取得し、
コンボボックスに値を格納するのはどうでしょうか?
そうすると常にテーブルの値を参照するのではありませんし、
amamaqさんの書かれた後の処理(実行ボタンでデータ更新処理)のみテーブルアクセスするので、
データベース負荷が軽減されます。

この手法はどうでしょうか?

> yuji_from_kyotoさん:
>
> ご回答どうもありがとうございます。
>
> 私のPC環境はWindows7で、お客様PCはVistaです。
> どちらもAccess2007です。
>
> 最初におかしくなったのは、あるフォームからレコードを入力(実行ボタンでテーブルに追加/更新する)していた際、同じ処理を数回行った時点で、急にフォームにあるコンボボックスが開けなくなったそうです。
> (このコンボボックスの、値集合タイプはテーブル/クエリで、ここで参照しているテーブルも
> なくなっていました)
> 各コンボボックスで参照しているテーブルは、特にプログラム内では使用していません。
> 急に10個以上のテーブルが消えてしまうのが全く不可解ですし、原因が分からないと、いつまた同じ現象が起きるか分からず、困り果てています。(><)
    • good
    • 0
この回答へのお礼

yuji_from_kyotoさん:

ご回答どうもありがとうございます。
しばらく様子を見て、再発するようであれば、コンボボックスの仕組みを変えることも考えたほうがいいですね。
ただ、テーブルがDropされていることがどうも気になって。。。

お礼日時:2010/10/26 12:01

Accessと一口に言ってもいろいろあります。


mdb,adp,スタンドアロン,クライアント/サーバ,ファイル共有,バックアップ,最適化等々
それぞれ原因/解決方法が異なります。
    • good
    • 0
この回答へのお礼

yorozu_yaさん:

ご回答どうもありがとうございます。
Accessファイルはaccdbで、サーバ等へのアクセスや他システムとテーブルを共用したりということもありません。

お礼日時:2010/10/26 12:05

お客様の実行環境とamamaq さんの開発環境はどのようなものでしょうか?



プログラムソース上、どのラインでエラーが出ているのか分かりますか?

テーブルが無くなったのはわかりませんが、Access2007はまだまだ不可解な不具合が多いと思っております。

予想ですが、テーブル自体がおかしくなり、書き込みや参照が不能となり、
テーブルが破壊されたのかも知れません。。。


お客様の環境を、出来るだけ開発環境に合わすのが良いと思われます。
OSのパッチもです。
    • good
    • 0
この回答へのお礼

yuji_from_kyotoさん:

ご回答どうもありがとうございます。

私のPC環境はWindows7で、お客様PCはVistaです。
どちらもAccess2007です。

最初におかしくなったのは、あるフォームからレコードを入力(実行ボタンでテーブルに追加/更新する)していた際、同じ処理を数回行った時点で、急にフォームにあるコンボボックスが開けなくなったそうです。
(このコンボボックスの、値集合タイプはテーブル/クエリで、ここで参照しているテーブルも
なくなっていました)
各コンボボックスで参照しているテーブルは、特にプログラム内では使用していません。
急に10個以上のテーブルが消えてしまうのが全く不可解ですし、原因が分からないと、いつまた同じ現象が起きるか分からず、困り果てています。(><)

お礼日時:2010/10/25 20:52

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