tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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 。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。