【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

Accessで名前の間のスペースを削除したいのですが

A 回答 (1件)

細かい状況が分かりませんがAccessではReplace関数というものが使用できます。


例えば 鈴木 太郎 のようなデータがテーブルの氏名フィールドに入っている場合には、更新クエリーで次のように更新すれば間のスペースを除去できます。
Replace([氏名]," ","")

Replace関数は文字列中のある文字を別の文字に置き換える関数ですが、この例では全角スペースを""(空文字列=文字なし)に置き換えています。
    • good
    • 16
この回答へのお礼

遅くなりましたが、大変有難う御座いました。早速、参考にして処理を行いました。助かりました。

お礼日時:2010/09/01 11:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

アクセスで下記のような文字列中の空白を削除する方法を教えてください。

「東○京」、「東○○京」、「東○○○京」のように(○はスペースを表しています。)、スペースの数も様々なものを「東京」にしたいのですが・・・

なお、編集→置換ではなく、関数を使ったものでお願いします。

Aベストアンサー

単純にReplace関数を使うでは問題あるのかしら?
全角空白をブランク文字列に置き換える
もし半角もあるなら半角空白1文字をブランク文字列に置き換え

SELECT Replace(Replace(都道府県,"○","")," ","") AS 都道府県名
FROM テーブル名

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QAccessで、1つの項目に複数の置換えを1度でするには?

Access2003で、1つの項目に複数の置換えを1で実行したいのですが、どうすればいいのでしょうか?
編集メニューの『置換』を使うのではなく、クエリやマクロで実行したいのです。

どんどん溜めているデータを定期的に決まった文字を1度に変換できるようにしたいのです。

例えば、[会社名]フィールドに入っている
 「株式会社」 を 「(株)」 に、
 「有限会社」 を 「(有)」 に、
 「法人会社」 を 「(法)」 に、…続く…、などと置換えしたいのです。

更新クエリで、『Replace([会社名],"株式会社","(株)")』 と1つなら置換えできたのですが、複数置換えしたい場合は、同様のクエリをその数だけ作ってマクロで続けて実行させるという方法しかないのでしょうか?

できればクエリを増やしたくないので、他にいい方法がありましたら、教えて下さい。

Aベストアンサー

同一のReplace関数のネストで、下記は2つの例ですが、3つまでぐらいなら、式が長くなるが辛抱できるのでは。
Replace(Replace([学校],"北小学校","北新小学校"),"中央小学校","中央北小学校")
生徒テーブルの学校フィールドで
A生徒の学校フィールド  北小学校ー>北新小学校
B生徒の学校フィールド  中央小学校ーー>中央北小学校
になったフィールドを作れました。

Qアクセスで#エラーを表示させない方法は?

アクセス2000を使用しています。フォームにテキストボックスを貼り付けて、計算式を入れています。計算できない数値になると、#エラーと表示されます。目障りなので、#エラー という表示を消したいのですが、どうしたらよろしいでしょうか?宜しくお願い申し上げ候。

Aベストアンサー

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の左端にあるコンボボックスで「式」を選択
5)上記コンボボックスの隣が1つのテキストボックスになるので、そこに以下のような式を入力
 IsError([テキスト0])
 ※上記の式は当該テキストボックスの名前が「テキスト0」の場合です。
6)上記テキストボックスの下、右から2番目に「A」と表示された、文字色を指定するボタンがあるので、
 その左の小さな「▼」をクリックし、当該テキストボックスの背景と同じ色(既定では白のはず)を選択
7)『OK』ボタンをクリックしてダイアログを閉じる

・・・以上です。
これで、『テキスト0』の計算式がエラーになった場合は、文字色が背景と同じ色になるので、「#エラー」と
いう表示はされていないように見える、という状態にすることができると思います。

はじめは「IIF関数とIsError関数を使用して」と考えたものの、IIF関数は引数がエラーになった時点で
エラーが返されてしまう(=元の木阿弥)ので、どうしたものかと思ったのですが・・・
とりあえず、「見た感じ、何も表示されていないように見える」ということで、『条件付書式』での対応と
いうのはいかがでしょうか。

1)当該フォームをデザインビューで開く
2)当該テキストボックスを選択
3)メニューで「書式(O)→条件付き書式(D)」を選択
4)『条件付き書式設定』ダイアログが開くので、『条件1(1)』枠の...続きを読む

QACCESSのデータに自動で半角スペースを入れたい

ACCESSのデータに自動で半角スペースを入れたい

例えば フィールドサイズ:15(テキスト型) のフィールドに10桁の数字を入力
した場合、残りの5桁に自動的に半角スペース(もしくは「0」)を入力する方法はないでしょうか?

例)
 1234567890 → 000001234567890
        → @@@@@1234567890(@は半角スペース)

テーブル・クエリどちらでもかまいませんので教えてください。
よろしくお願いします。

Aベストアンサー

余計なお世話かもしれませんが・・・
>フィールドサイズ:15(テキスト型)
これが数値型だったら簡単なんですけどね
テーブルデザインのフィールドの書式に半角スペースだったら@を15個
0の場合は0を15個。

テキスト型の場合は半角スペースの場合のみできましたが
半角スペースの場合は後々トラブルの元になったかすかな記憶が・・・

テキスト型の場合はクエリなら
format([フィールド名],string(15,"@"))
format([フィールド名],string(15,"0"))
とか

Q[Access] 余分な空白(スペース)の削除

テキストファイルをAccessにリンクしたなのですが、余分な空白(スペース)があります。
クエリを使ってこの余分な空白(スペース)を削除できるような関数はありませんでしょうか。
宜しくお願いしますm(_ _)m

Aベストアンサー

Trim、RTrim、LTrimですね。

LTrimは左余白
RTrimは右余白
Trimは両方を兼ねてます。

QAccess2003 クエリで、空の列は作れますか?

Access2003で、クエリを作成しています。
その作成したクエリを、Excelにエクスポートして編集作業を行います。
Excelでの編集作業で、新たに列を3列ほど挿入する必要がありますが、出来ればクエリの段階で、タイトル名だけ付けて、3列空けた状態にしておきたいです(挿入列も、連続で無い為)。

しかし、ただ単に列を挿入することができません。

無理なのでしょうか?

Aベストアンサー

クエリーのデザインビューで任意の場所に列を挿入し、そのフィールド欄をそれぞれ「タイトル1: ""」「タイトル2: ""」「タイトル3: ""」とすれば、ご希望の通りに出来ます。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessのクエリで、Left関数を使用して、7桁の数値を抜き出す方

Accessのクエリで、Left関数を使用して、7桁の数値を抜き出す方法。
IDが8桁で入力されているのですが、左から7桁だけを抜き出して、全てのレコードを表示させたかったのですが、誤って入力されている7桁のIDしか表示されませんでした。
いつもExcelを使用している感覚だったので、文字の左から7桁の数値や文字列を抽出して表示してくれるものと思っていました。
元のテーブルに入力されているIDを変更することなく、
クエリで、7桁だけにして、その取り出した7桁で区別し、グループとして認識し合計を出したいと考えているのですが、どうすればよいのでしょうか。
宜しくお願い致します。

Aベストアンサー

>Left関数をする前は、5000行程なのですが、関数を加えたとたん4300程度に減ってしまいます。

関数を加えるのでは無く、関数だけ(演算フィールドのみ)のクエリを作成をして実行させます
単にleft関数で左から何文字取れという演算フィールドしか持たないクエリを実効させれば、指定した桁数に満たない場合には実際にある桁数まで、一文字も入っていない場合には0を返して、全データ分のクエリ結果を返します

全件分のデータが帰って来ないという事は作成しているクエリに問題ありの可能性高いです

先の書き込みに書きましたが、手順は演算フィールドのみのクエリを作成し実行させ全データが取得出来る事を確認してから、この演算フィールドのみのクエリに必用なフィールドを追加してゆくって事してください


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング