• ベストアンサー

アクセスで文字列中の空白を削除する方法

アクセスで下記のような文字列中の空白を削除する方法を教えてください。 「東○京」、「東○○京」、「東○○○京」のように(○はスペースを表しています。)、スペースの数も様々なものを「東京」にしたいのですが・・・ なお、編集→置換ではなく、関数を使ったものでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

単純にReplace関数を使うでは問題あるのかしら? 全角空白をブランク文字列に置き換える もし半角もあるなら半角空白1文字をブランク文字列に置き換え SELECT Replace(Replace(都道府県,"○","")," ","") AS 都道府県名 FROM テーブル名

riograndy
質問者

お礼

ありがとうございました。早速、やってみましたところできました。 ご丁寧なご回答に感謝いたします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

似たような機能の関数はTrimしかないとおもう。それもこのケースでは使えない。ユーザー関数でも作るよりほかないと思う。 質問は 「東○○京○へ行きます」とあるようなケースは無いのですか。1語句だけがそのフィールドに入っているのですか。質問にはっきりさせないと。質問が大雑把な表現では回答を誤る。 例 半角スペースのみ Function blkdl(a) blkdl = Replace(a, " ", "", , , vbBinaryCompare) End Function 全角も混合するなら、全角スペースでReplaceをネスト。 このフィールドにNullがある場合はエラーになるので、別途手当てが必要。

riograndy
質問者

補足

「東京」と記しているのだから「東京」であるにすぎない。 難しく、もしくはひねくれて考えすぎか、文章の読解力の問題か? いや、素直さか・・・

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

ユーザー定義関数を使うのはいかがでしょうか。標準モジュールに記述して、クエリで使用してください。 当方のAccess2000にはSubstituteがありませんので、Replaceをループしています。(入力ミスがあると、無限ループになってAccessがフリーズしますのでご注意下さい) Function cutSpace(target As String) Dim buf As String buf = target Do While InStr(buf, " ") buf = Replace(buf, " ", "") Loop Do While InStr(buf, " ") buf = Replace(buf, " ", "") Loop cutSpace = buf End Function

riograndy
質問者

お礼

ご回答ありがとうございます。 アクセスは初心者で、ご回答いただいたことは少々難しく・・・ 今後、お教えいただいたようなことが使いこなせるよう頑張ります。

関連するQ&A

  • Excel2007 - 特定の文字列を一括で削除する方法を教えてください

    シート内に多数存在する文字列を一括で削除する方法はありますでしょうか。 検索と選択>置換で、置換後の文字列を空白にしても置換することができません。 関数を使用する方法しかないのでしょうか。 できれば関数を使用せずに削除したいと思っています。 ご存知の方がいらっしゃいましたらご教示頂けますでしょうか。 どうぞ宜しくお願い致します。

  • 文字列中の空白削除について

    PHP4で、文字列の前後に空白が場合はtrimを使って削除可能ですが、文字列の中に含まれていたとき、その空白を削除するいい方法はあるでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字間の空白の削除を教えてください。

    全角文字の文字間にある空白を削除したいです。 山 田 太 郎 → 山田太郎 下記のとおり置き換えようとしてもダメでした。 select replace('山 田 太 郎',' ','') from user_master; 左空白削除(ltrim() 関数)、右空白削除(rtrim() 関数)、左右空白削除(trim() 関数)などは、ありますが。。。 文字間の空白削除は、どうすれば良いのですか?

  • Accessでの全データから空白削除

    Access2003で、各データの数値の前後に存在する空白を全て削除したいと考えています(データ型はテキスト型)。 空白は半角スペースですが、1個~6個の幅があります。 例:" 111"、" 11 "、" 1111 "など 間に空白は入っていません。 シンプルに置換機能で検索できれば手っ取り早いのですが、データ件数が多いからか(40万件、60万件、80万件)、挙動が安定しません。 エラーが出て削除できなかったり、出来ているように見えてあるところから全く削除出来ていなかったりという状態です。 Trim関数あたりを使ってマクロでなんとかできるのかな、という想像はつくのですが、Howが全く分かりません。マクロ素人です。 よろしくお願いします。

  • 検索する文字列 △{2}  置換後の文字列 ^t (^ は(へ)のキー) 検索オプション

    置換(編集、置換(E)の作業ですが、複数の(Space)(空白)を(Tab)扱いにして変換する作業(なんですが、編集。置換、編集と置換、置換)   検索する文字列 △{2}  置換後の文字列 ^t (^ は(へ)のキー) 検索オプション(ワイルドカードを使用するにレ点)  ※ △{2} の 2 は、(Space)(空白)であり変数である、△は(さんかく と打ち変換しました)、、、という感じで作業したんですが、うまくいきませんが?どこが、変なのでしょうか?このまま、作業しても、結果が0個でしたので、△を、(Space)キー1個に、書き換えて、作業しましたところ、置き換えが終了しました、と、表示されたのですが、t t t t とたくさん表示されました、、、?

  • PHPの空白除去

    PHP5において 半角の前後空白を削除する関数trimは理解してます。 文字列中にある半角及び全角の空白を除去するには 文字列置換用の関数、例えばstr_replaceを使って置換すれば 全て空白を除去出来ます。 例: ---------------------------------- $string=" あ い う え お "; $all=" ";//全角スペース $half=" ";//半角スペース $no="";//削除用変数 $string=str_replace($all,$no,$string); $string=str_replace($half,$no,$string); ---------------------------------- 最後の2行を書けば置換が出来るのですが、問題はこの二つの関数をまとめてクラス化し、再利用したいと思っています。 クラスの作成方法及び使用方法がまだまだ理解していないので、困ってます。どなたかお力になって頂ければ幸いにございます。

    • ベストアンサー
    • PHP
  • 列が空白なら削除したい

    「もし○列が空白なら削除、空白でない(ひとつでもセルに文字が入力されている)ならそのまま」ということを×列まで順に行いたいのですがどうすればいいのでしょうか? よろしくお願いします。

  • 文字の置換について教えてください

    教えてください。お願いします。 wordもしくはexcelでタブによってできた空白をスペースに置換する 方法を教えてください。 文字(文字列)の置換は[編集]-[置換]等でできるのですが。 よろしくお願いします。

  • 空白文字列の生成

    今、javascriptの勉強をしているのですがインターネットで調べてみても、分からないところがあるので教えてください。 問題のプログラム仕様は 空白文字列(スペース)を生成する関数を作る。 関数を利用して、イメージファイルの先頭にスペースを表示していく。 コードの入力手順は 1、空白文字列を作成するspc(n)関数を作る for(i=1; i<n; i++) s=s+" "; return s; 2、イメージファイルを表示する。 3、for文を使用して「i」が1,3,5,7,9になるように繰り返しを行う。 4、関数spc(i)でi個分の空白文字列と生成し、「スペースi」とイメージファイルの間に表示させる。 という問題なのですが2番と3番はできるのですが1番と4番が分からないので教えてください。お願いします

  • 【Access2000】文字列の操作について

    Access2000で文字列の操作について質問です。 前任者が突然退職してしまったため、やり方が分からず困っています。。。 ■文字列の操作について 姓(フリガナ)と名(フリガナ)の文字列を下記仕様に変換したいと思います。 【変換前】   姓(フリガナ) 名(フリガナ)    ⇒全角カナで2つの項目に分かれている        【変換後】   姓名(フリガナ)    ⇒それぞれ半角カナに変換し、1つの項目に結合する    ⇒結合後のバイト長は30バイト、右詰で空白は半角スペースで埋める ■レコードのカウント処理について ・条件に合致したレコード数をカウント ・レコード数を右詰にし、前に0をつける(12バイト) Accessに詳しい方、ご返答いただけると助かります。

専門家に質問してみよう