タイトル | : Re^5: VB6アプリでwin11にすると実行時エラー3078 |
記事No | : 16697 |
投稿日 | : 2024/10/02(Wed) 18:25 |
投稿者 | : はる |
> > > > テーブル名、クエリ名、列名、フォーム名などに > > > > 「半角カナの濁音または半濁音」が含まれていないでしょうか。 > > > > あるいは「長音記号」もトラブルの原因になりやすいので注意。 > > と書きましたが > > エラー内容は「実行時エラー '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 。
早々ありがとうございます。 ソース内の変更は自信がありませんがこのへんがmdbを見ているのかなとおもいます 「 Case PROG_NOHIN: form1.Caption = "納品書入力" Set RS_D = DB.OpenRecordset("納品データ", dbOpenDynaset) Set RS_MD = DB.OpenRecordset("納品明細データ", dbOpenDynaset) lblLabels(1).Visible = False lblLabels(2).Visible = False lblLabels(7).Visible = False txtUdate.Visible = False cboJyoken.Visible = False cboKigen.Visible = False cmdNohin.Visible = False このところでしょうか? よろしくお願いします。
|