• ベストアンサー

アクセス更新クエリでの文字列置換の方法

arataの回答

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.2

モジュールで関数を作って、その関数をクエリで使えば、出来ると思います。 クエリは、 UPDATE TEST_TBL SET TEST_TBL.DATA = REPL([DATA],"東京","京都"); のようにします。TEST_TBLのDATAカラムの、"東京"を"京都"に変更します。REPLが自作の関数です。 モジュールで、下記のようにREPL関数を作成します。 ' ' sFrom・・・更新対象の文字列 ' sFind・・・置換対象文字列 ' sRepl・・・置換文字列 ' Public Function Repl( _ sFrom As String, _ sFind As String, _ sRepl As String) As String Repl = Replace(sFrom, sFind, sRepl) End Function (インデントが消えて、見にくいですね。ごめんなさい) Replace関数が直接クエリから呼べるかと思ったのですが、直接は駄目でした。また、Replace関数は、Accessのバージョンによっては、使えないかもしれません。その時は、言ってくだされば、代替案を出します。

s-holmes
質問者

補足

丁寧な回答ありがとうございます。 関数を使わずにIIFとかを使ってsqlのみでできないでしょうか。 参考サイトらしきサイトを見つけたのですが、素人なもので単純化できません。 http://www.akj.co.jp/aug/qa/ans0001-0050/0582.html

関連するQ&A

  • Access 置換を更新クエリで組めませんか?

    フィールドに「123万円」とあるのを、万円を除いた数字だけ(123)にしたいです。 置換しようとしたところ、1件ずつだとうまくいきますが、『すべて置換』を選択すると エラーがでます。件数が多いため、1件ずつ置換なんてしていられません。 更新クエリで置換することはできないのでしょうか?

  • アクセスでの置換について(クエリ)

    アクセスでの置換について(クエリ) クエリを使って置換をしようと思うのですが、 うまく出来ません。 変更したい文字はHTMLなんですが </tbody></table><br><br> という文字を <br><br><table> に置換したいです。 ■まずは、アクセス初心者なので、 ちゃんと抽出できるか確かめるために、 選択クエリで抽出条件に In (</tbody></table><br><br>) といれましたが、エラーが出てしまいます。 どなたか、わかるかたいたら教えてください。 よろしくお願いします。

  • アクセス クエリ

    アクセス クエリの抽出について教えて下さい。例えば、1つのクエリの中に数値のフィールドが5つ作成してあり、それぞれ違うフィールドの抽出条件をしています。それぞれの条件を入れてしまうと5つのフィールド条件全てに合ったものしか抽出できません。 5つのフィールドのうち、どれでも1つ一致したら抽出できるようにしたいのですが良い方法を教えて下さい。宜しくお願いします。

  • Access(アクセス)での文字列の置換について

    商品データベースをCSVでダウンロードし、一括で変更しようとしています。 Excelでは1つのセルに911文字以上のテキストが入っていると置換ができないようなんですが、アクセスではどうなのでしょう。 ちなみに、置換したいフィールドにはhtmlが入っていて、1000文字を超すフィールドもたくさんあります。 また、Excelはバージョンによって、ダブルクォーテーションを含むCSVデータ(htmlなど)は上手く1フィールドとして認識できないようです。アクセスもそのような不具合があるのかも教えていただきたいです。 よろしくお願いします。

  • Accessの文字の置換のクエリについて

    Accessについて教えて下さい。 SQLデータベースをODBCを使用して、Accessにてリンクしています。 テーブルのあるフィールドに顧客名が並んでいます。 頭の一文字を○に置換するには、どのようなクエリを組めばいいのでしょうか? 山田 太郎⇒○田 太郎 田中 一郎⇒○中 一郎 佐藤 花子⇒○藤 花子 また、間にスペースが入っている後の文字(名)の置換の方法も教えて下さい。

  • Accessでの文字の置換のクエリについて

    Accessについて教えて下さい。 SQLデータベースをODBCを使用して、Accessにてリンクしています。 テーブルのあるフィールドに顧客名が並んでいます。 頭の一文字を○に置換するには、どのようなクエリを組めばいいのでしょうか? 山田 太郎⇒○田 太郎 田中 一郎⇒○中 一郎 佐藤 花子⇒○藤 花子 また、間にスペースが入っている後の文字(名)の置換の方法も教えて下さい。

  • アクセス2000で 文字列の一部の文字の置換方法

    氏名フィールドに入力している一郎、次郎、三郎という名前の「郎」を、「*郎」で検索と置換で検索しました。これを「朗」に置換したいのです。 置換後の文字列を「*朗」とすればそれまでのフルネームが全て「*朗」になりますし、「朗」としても同じです。 検索と置換で、一郎、次郎、三郎を一朗、次朗、三朗に置換する方法を教えていただけませんか。

  • アクセス 更新クエリで文字置換え

    お世話になります。 先日、ご質問させていただきましたが、質問内容が変わってきたので、質問させてください。 Accessで特定の文字を置き換えたいです。 商品名の一部を置換したいのですが、 I たばこ II 文房具 (1) 工具 (2) 雑貨 これの、 Iと(1)を1に置換し、 IIと(2)を2に置換したいです。 1:1(Iを1)で置換する、式は作成出来たのですが、2:1(Ior(1)を1)で置換する式はどうしたらいいのでしょうか? 1:1で作成した、SQLは下記のようになっています。 UPDATE [★商品テーブル] SET [★商品テーブル].商品名= Replace([商品名],"(1)","1") WHERE ((([★商品テーブル].商品名) Like "*(1)*")); クエリでフィールドを増やして、作成しようとすると、商品名が重複しています。とエラーができます。 お力を貸してください。

  • ACCESS2000のクエリについて教えてください。

    ACCESS2000でデータから抽出したいのですが、抽出条件をどのようにすればいいのかわかりません。 フィールドに「日付」「ID」「日時」があり、日付別、ID別の最新日時だけを一度に抽出したいと思っています。 どのように条件を設定したらよいのでしょうか? アドバイスよろしくお願いします。

  • Accessの文字置換方法

    Access2002を使用しております。 「結果テーブル」というテーブルの<支店名>というフィールドの空白のレコードをすべて"空白"と言う文字に置換する作業を行っています。 現在は一度「結果テーブル」を開いた後に<支店名>フィールドを全部指定してから置換作業を行っているのですが、これをマクロを使用して自動処理にさせたいのですが、どうもうまくできません。どのようにすれば自動でできますか? VBAでもかまいません。 よろしくお願いします。