Microsoft Access 掲示板

クエリの数を圧縮したい / 18

24 コメント
views
4 フォロー
18
hatena 2023/11/21 (火) 13:03:27 修正

""をとってみましたが、見つかりません、パラメータや別名を確認してくださいというエラーが出ました。

このエラーが出ているクエリのSQLを提示してください。

エラーの出ないSQLを提示されても意味ないですよね。

一応、下記のSQLを実行してみましたが、エラーなく実行できました。

UPDATE T_出力, T_置換用テーブル
SET T_出力.住所1 = Replace(Nz([T_出力].[住所1],""),[T_置換用テーブル].[置換前],[T_置換用テーブル].[置換後])
WHERE InStr(1,Nz([T_出力].[住所1],""),[T_置換用テーブル].[置換前],0)>0;
通報 ...
  • 19

    SQLビューを開こうとしましたが、'InStr(1,[T_出力].[住所1],[T_置換用テーブル].[置換前],0)'が見つかりません、パラメータや別名が正しいこと、、、を確認してくださいというエラーが出ます。

    20

    見にくいかもしれませんが、スクショでのデザインビューです。画像1

    21

    クエリを新規作成して、SQLビューにして、下記のSQLを貼り付けて実行するとどうなりますか。

    UPDATE T_出力, T_置換用テーブル
    SET T_出力.住所1 = Replace(Nz([T_出力].[住所1],""),[T_置換用テーブル].[置換前],[T_置換用テーブル].[置換後])
    WHERE InStr(1,Nz([T_出力].[住所1],""),[T_置換用テーブル].[置換前],0)>0;
    
    22

    デザインビュー見ました。
    更新するフィールドと抽出条件を設定するフィールドは別にしないと。

    上記の回答で新規作成したクエリをデザインビューにして違いを確認してください。

    23
    Anko 2023/11/21 (火) 13:25:03 修正 7fdfc@46fae >> 19

    HatenaさんのSQLビューをコピーしてデザインビューを確認したところ、住所1とInstrの2つに分かれました。1つのフィールドに書こうとしていたから上手くいかなかったのですね。

    24

    式1: InStr(1,Nz([T_出力].[住所1],""),[T_置換用テーブル].[置換前],0)
    というような演算フィールドは更新できませんからね。