タイトル : Re^10: VB6アプリでwin11にすると実行時エラー3078 投稿日 : 2024/10/20(Sun) 13:19 投稿者 : はる
| > 追記: > > > どこに問題があるのか、まだ何とも言えませんが、元のソースが > > 相当古い環境で作られているようなので、現行環境での動作を保証するのが > > だんだんと難しくなってきていますね。 > > まずは問題点を切り分けないと対策も打てないので、とにかく調査が先決ですね。 > リンクテーブルなどを使っている場合は、それに関する情報も提供してみてください。 > > > (1) 依存コンポーネントの不足の可能性 > → No.16700 の手順に従い、参照設定に問題が無いか確認してください。(※VB6 開発環境が必要) > > (2) 照合順序の問題 > → No.16700 の手順に従い、DAO で CollatingOrder プロパティを参照して確認してください。 > VB6 または Access が必要ですが、それらが無ければ VBScript 等で試すこともできます。 > > (3) mdb 破損の可能性 > → これは実物を見てみないと分からないかも。ファイルを共有することは可能でしょうか? > あるいは新規 mdb を作成して、そこに元のmdbのテーブル等をインポートしてみると回復するかも? > > (4) 環境依存性 > → 別のWin11でも動かなかったのでしょうか? > 別のWin11で動いた場合は、OS や Access の修復セットアップ等で回復しませんか? > > (5) VB6 ソースを修正してリコンパイルしてみるとどうなるか? > → VB6の開発環境が必要ですが、たとえば > Set RS_D = DB.OpenRecordset("納品データ", dbOpenDynaset) > のかわりに > Set RS_D = DB.TableDefs("納品データ").OpenRecordset(dbOpenDynaset) > あるいは > Set RS_D = DB.TableDefs( 該当テーブルを表す整数値 ).OpenRecordset(dbOpenDynaset) > だとどうなるのか。(※これで該当する場合、mdb の破損か、NLS バージョン差異が疑われます) > > (6) 実際、VB6 や Access VBA からは、そのテーブルはどう見えているのか? > → No.16698 の For Each のソースを試してみましょう。 > 少なくとも Access はお持ちのようなので、Access VBA でその mdb を開いて > 先のソースの変数「DB」の部分を、「CodeDb」に書き換えれば実行できるはずです。 > イミディエイトに "[納品データ]" という文字列が現れるか否かが肝となります。 魔界の仮面弁士さま お世話になります。 色々とご指南ありがとうございます。 最初から一つずつ再確認しながらやってみましたが素人が出来る範囲内では変わりませんでした ソースコードの変更はやはり自身が無いためやっておりません ご指摘の通りVB や Access がかなり古いと思いますので解析は大変と思います 素人ながら簡単に作動できればと安易に思っていましたが一連の流れからかなりやっかいと理解しました セキュリティー、今後同様な問題等でVBに執着しなくても良いのかなと思います とりあえず現状他win10PCで作業出来ているいますので困っていませんので少し時間をかけてご指示頂いた所をやってみたいと思います よろしくお願いいたします。 |
をクリックするとツリー全体を一括表示します)
- VB6アプリでwin11にすると実行時エラー3078 - はる 24/09/26-18:34No.16692