Microsoft Access 掲示板

【自己解決済】エラー3343を解消したい。 / 2

15 コメント
views
4 フォロー
2
hiroton 2022/03/09 (水) 08:41:11 9aecf@f966d

現象を知っているわけではありません。

「完全終了」はタスクマネージャーにプロセスが残っていないのも確認していますか?
新規にACCESSファイルを作成し、オブジェクトをすべてインポートしてみるとどうですか?
EXCEL出力機能を使わないでファイルを回した場合は正常に動作していますか?

通報 ...
  • 4

    hiroton様
    とんでもございません。
    コメント・ご指摘いただけるだけでも非常にありがたく思います。
    コメントくださりありがとうございます。

    ACCESS終了時はプロセスの終了を確認してもらっています。
    EXCEL出力機能を使わないでファイルを回した場合については、
    先日一度、手順4の後、確認者2が別機能を使用時
    同様の現象が起こったことがありました。

    (1)両確認者とも別機能使用した場合についてと、
    (2)新規にACCESSファイルを作成し、オブジェクトをすべてインポートした場合
    については、未検証のため両確認者の都合がつき次第検証したい所存です。

    当質問お目通し下さりありがとうございます。

    5
    りんご 2022/03/10 (木) 10:24:02 c564b@0e907 >> 4

    不完全なSQLに書き換えられてしまっているためであることが分かりました。
     
     クエリのSQLを上書きするコードがあって、何かの原因でSELECT〜FROM句が抜けちゃうという事でしょうか?
     開発者→確認者1→確認者2という事ですが、開発者→確認者1→確認者1(続けてもう一度)は試しましたか?

    6

    りんご様
    コメントありがとうございます…!

    りんご様のお察しの通り、SQLを上書きするコードを組み込んでおりました。
    これは別箇所で条件を書き加えたいケースに対応するために入れたものでした。
    以下クラスのファンクション抜粋(変数宣言略)
    ====================
    【1】
     Public Sub SetQuery(ByVal strQue As String)

         Set qf = CurrentDb.QueryDefs(strQue)

         ' クエリSQL取得(元)
         baseSQL = qf.sql

     End Sub
    【2】
     Public Sub Execute()

         ' クエリ実行
         qf.Execute

         ' SQL文を元に戻す
         If Not 別モジュール.IsNullOrEmpty(baseSQL) Then
             qf.sql = baseSQL
         End If

     End Sub
    【3】
     Public Sub ObjClose()

         Set qf = Nothing: Close
         baseSQL = ""

     End Sub
    ====================

    baseSQLはString型で、元のSQL文は3652文字です。

    開発者→確認者1→確認者1(続けてもう一度)と
    開発者→確認者2→確認者2(続けてもう一度)のケースは
    上手くいくとの報告でした。

    両確認者の方が丁度予定が多忙となっており、
    昨日から同環境での検証が進んでおらず非常に歯がゆいです。
    検証のアドバイスを頂いている中、恐縮です。