タイトル : Re^4: VB6アプリでwin11にすると実行時エラー3078 投稿日 : 2024/10/01(Tue) 15:30 投稿者 : 魔界の仮面弁士
| > > > テーブル名、クエリ名、列名、フォーム名などに > > > 「半角カナの濁音または半濁音」が含まれていないでしょうか。 > > > あるいは「長音記号」もトラブルの原因になりやすいので注意。 と書きましたが > エラー内容は「実行時エラー '3078': > 入力テーブルまたはクエリー '納品データ' は見つかりませんでした。 まさに、「濁点」を含むオブジェクトではありますね。 前回紹介した URL にもあるように、NLS の更新によって半角カナ/全角カナの 判断ルールが変更されたため、それが原因で引き起こされている可能性があります。 https://qiita.com/ohsawak/items/b6809ef25f74598d2315 > 「テーブル名や列名を [ と ] で囲むようにしてみる」 選択クエリを SELECT * FROM 納品データ ではなく SELECT * FROM [納品データ] のようにする、ということです。 元のテーブル名や列名が、半角カナなのか全角カナなのかも確認を。 また、上記 URL においては、Recordset や QueryDefs のコレクション メンバーにアクセスする際は、 rs!フィールド名1.Value ではなく、 rs![フィールド名1].Value のように、角括弧で囲むという方法が示されていますが、 この方法だとオートコレクトの影響を受ける可能性があります。 (先の URL でも、オートコレクトの影響を受けるようになってしまったとの記載がありますね) そのため、そもそも "!" によるコレクション メンバー アクセス演算子を使うのではなく、 rs("フィールド名1").Value rs.Fields("フィールド名1").Value rs.Fields.Item("フィールド名1").Value のような、引数付きプロパティによる表記を用いた方が安全です。 > ネットワークから他のPC内のVBEXEを起動すると同様な実行時エラー '3078'が出ます。 以下、本題からは外れますが: Jet/ACEDAO エンジンの特性上、mdb ファイルはネットワーク共有で使うべきではありません。 ただし、ネットワーク上に置いた EXE をローカル PC から実行し、 その EXE が、実行したローカル上にある mdb ファイルを読み取る分には一応 OK 。 |
をクリックするとツリー全体を一括表示します)
- VB6アプリでwin11にすると実行時エラー3078 - はる 24/09/26-18:34No.16692