Access2007でDataコントロールを利用するには?その2

解決


A−S  2009-05-08 16:34:55  No: 101735  IP: [192.*.*.*]

先日、Access2000形式MDBをVB6(SP6)のDataコントロールで利用可能かという質問をさせて頂きました、A−Sと申します。

回答を頂いた通り、Connect部分等を設定しなおしてみると、読み込めるようにはなりました。
ただ、1つのフォーム上で複数個のDataコントロールを使用している部分があるのですが、そのフォームを呼び出そうとするとVBが強制終了してしまいます。
前日確認した時点では動作していたのですが・・・。

参照設定が足りない、設定が違うなど、どなたか似たような現象を体験した、情報を有している方いらっしゃればご助力いただきたいです。

環境:Windows Vista  VB6(SP6)  Access2007(保存形式は2000形式MDB)

編集 削除
オショウ  2009-05-08 16:38:01  No: 101736  IP: [192.*.*.*]

回答ではありません・・・

私も昔、Form上に3個貼ってやったことありますが、強制終了は
経験がありません。

動作していたころと今の異常が出る状態とで、DB側に何か変化は
ありませんか?

あとVISTAなんで、プログラムやMDBの配置を変更したとか・・・

その変化した部分が当然起因しているかと。

以上。

編集 削除
A-S  2009-05-08 16:44:33  No: 101737  IP: [192.*.*.*]

オショウ様>
DB上のテーブル等に変更はありません。
配置自体は登録してあるパスからDBを読み込むようになっていますが、先日と場所を変えたということはないです・・・。

ありがとうございます。

編集 削除
魔界の仮面弁士  2009-05-08 17:16:03  No: 101738  IP: [192.*.*.*]

mdb 自体が破損しており、特定の操作をした段階で、
予期せぬ動作をしてしまうという事象ならば経験しています。
(その時は、VB6 との組み合わせではありませんでしたが)

修復できる場合もありますが、保証される物でも無いので、
    以前のバックアップ版 mdb から復元する。
もしくは、
    mdb を新規に作成し、そこに、破損の疑いのある mdb の
    各データを取り込んでいくことで復元する。
といった対応をする事で、問題が出なくなりました。


今回の件が、mdb の破損が原因かどうかは分かりませんけれども。

編集 削除
オショウ  2009-05-08 17:45:54  No: 101739  IP: [192.*.*.*]

> mdb 自体が破損しており、特定の操作をした段階で、
> 予期せぬ動作をしてしまうという事象ならば経験しています。
魔界の仮面弁士さんに1票!

現在のMDBの物理的なサイズはどの程度ですか?
破損しているかどうか・・・は、ACCESS2007で開けますか?

ACCESS2007上でクエリを動かして、正常に結果が取得できるな
ら破損ではないかもしれませんが・・・

以上。

編集 削除
魔界の仮面弁士  2009-05-08 17:54:45  No: 101740  IP: [192.*.*.*]

> ACCESS2007上でクエリを動かして、正常に結果が取得できるな
> ら破損ではないかもしれませんが・・・

テーブルスキーマの破損等であれば、Access で検知できますし、
破損箇所の破棄あるいは修復が行われる場合もあるのですが、
一見、正常に動いているように見えて、実は破損していたという
状況も実際にはありえます。

破損しているかどうかの判断は困難ですが、mdb を作り直した結果、
問題が出なくなるようであれば、破損していた可能性がありそうです。


しかし、もしも既存 mdb を破棄し、新規 mdb でもう一度再検証しても
同じところで問題が発生してしまうようであれば、mdb の破損ではなく、
DLL Hell 等の環境問題を疑う必要があるかも知れません。

この場合は、別途クリーンな OS 環境を用意し、そこで動作確認を
取るといった対応が求められるかと思います。

編集 削除
A-S  2009-05-08 19:17:44  No: 101741  IP: [192.*.*.*]

返答が遅くなりました。
オショウ様、魔界の仮面弁士様、ご回答ありがとうございます。

原因が判明しましたのでご報告致します。

強制終了の原因となっていたのは、サードパーティ製のコントロール(QuickPakPRO4.0J)でした。
現在VB5→VB6へのコンバート中でして、元々のPGで使用していた製品がVISTAでは動作しないため、随所コンバート中だったのですが、まだPGの全体を把握しきれていない状況もあり、設定等を追えていませんでした。

Dataコントロールに設定されたテーブルからコンボボックスのリストを作成している箇所があったのですが、その箇所で強制終了していた次第です。

当方の稚拙な原因の切り分けによりご迷惑おかけ致しました。
また、ご回答頂きありがとうございました。

また何かありましたらご質問させて頂くこともあると思いますが、宜しくお願い致します。

編集 削除
A-S  2009-05-08 19:18:18  No: 101742  IP: [192.*.*.*]

解決チェック忘れてました。

編集 削除