• ベストアンサー

ACCESS 複数文字を1つの文字に置換

更新クエリで001A01,002B01,003C01のようにばらばらに変化するレコードの文字の一部(ここではA,B,C)を001K01(以下省略)のように一定の文字(ここではK)に変換するにはどうしたらよろしいでしょうか。前提は前から4桁目の文字をKに置き換えるとします。 O→0のように固定→固定は以前教えていただきました。 よろしくお願いします。

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

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

Mid は、ある意味オールマイティだと思います。 考えやすい(?)方法は 左から3文字 Left(文字列,3) 右から2文字 Right(文字列,2) その間に "K" を入れてみると・・・・ Left(文字列,3) & "K" & Right(文字列,2) ※ Mid の考え方は、何文字目から何文字分・・・  文字列のケツを扱う時には、あえて何文字分を指定しないことが多いです(私は)  5文字目からケツまでなら Mid(文字列,5) とか

ticktak
質問者

お礼

発想を変えると意外に簡単なんですよね。 ありがとうございました。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

とりあえず、式だけ紹介。 関数については別途調べる「クセ」を付けておいた方が良いですよ。 フィールド名を[a]と仮定して、   =Mid([a],1,3) & "K" & Mid([a],5,2) ただし、文字列長が6字、4字目を"K"に、盲目的に置き換える場合に限ります。

関連するQ&A

  • Access テーブルを繋げたり、文字を抜き出したりしたい

    Access2003です。 Aテーブル Bテーブル Cテーブル 名前    ランク   備考 あああ   AAA     ABC いいい   BBB     DEF ううう    CCC     GHI えええ   DDD     JKH ※フィールド数は、各テーブルに1つのみ とあります。 これをクエリで編集したいのですが、行いたいことが2点 1)1文字挿入して繋げる AテーブルとBテーブルを繋げるのですが、間に1文字挿入したいです。 「あああ~AAA」 と、「~」を挿入 2)1文字だけ抜き出す Cテーブルの真ん中の1文字だけ抜き出す 1レコード目だと、「B」だけ抽出 基本的な操作かもしれませんが、出来ません。

  • ◆文字列内の複数置換

    いつもお世話になっています。 置換についてご教授下さい。 文字列($str)を置換して$afterのように変換させたいです。 配列($patterns)で置換のパターンは持っています。 $str = "あF03いうえF02おF01"; $patterns = array("F01" => "A", "F02" => "B", "F03" => "C"); $after = "あCいうえBおA"; 宜しくお願い致します。

    • 締切済み
    • PHP
  • Accessで複数(200件程)の置換

    Accessで一つのフィールドの文字を置換えたいです。 置換えるものが数件なら更新クエリで Replace(Replace([フィールド1],"あ","a"),"い","i") とネストすればいいだけだと思いますが、置換えたいものが200件程あり、置換元のレコードも17万件程あります。 どの方法が簡潔で負荷も少ないでしょうか? いろいろなサイトを見ましたが、結局どれがいいか分からずじまいです。 ベストな方法を教えて下さい。 よろしくお願いします。

  • Accessの連番(文字+日付+文字)

    フォームで新規入力をする際に自動で連番を振りたいです 初心者でいろいろと調べているのですがうまくいきません 下記のような連番を振る方法を教えてください "Eyymmdd A "E"は固定で yy(西暦2ケタ)mm(月)dd(日)A(Aから始め、同じ日だとB,C,…と最大26(Z)まで)振っていく。日が変わるとまたAから始まる 「テーブル名」連絡文書E 「クエリ名」連絡文書Eクエリ 「フォーム名」連絡文書E 「フィールド名」管理番号(テキスト型) E110105 A E110130 A E110130 B E110130 C E110202 A… と"E"を固定 yy(西暦2ケタ)mm(月)dd(日)Aから始まり、同日であればB,C~と 日が変わるとAからまた始まるという連番をふりたいです 煮詰まってしまい、どうしてよいかわからない次第です 初心者にとても難しい事は承知しておりますが、何卒よろしくお願い致します

  • ACCESS2003 数値や文字列のあいまい検索

    フィールド内に入力されている文字列から、「ひらがな」や「英語」が入力されているレコードの抽出について質問です。 ※[ニックネーム]のフィールドは、英数カナ文字が混在しています。 ======================== (テーブル) [ID]  [ランク]  [ニックネーム]  1     A     123456789 2     B     akb48   3     A     ああああ    4     B     987654321     5     C     かかか123   6     B     112233    7     C     445566      8     A     778899xyz    ======================== ☆上記のテーブルから、[ニックネーム]に「ひらがな」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID]  [ランク]  [ニックネーム]  3     A     ああああ    5     C     かかか123    ======================== ☆上記のテーブルから、[ニックネーム]に「英語」が 含まれるレコードの抽出をする。 ======================= [抽出結果] [ID]  [ランク]  [ニックネーム]  2     B     akb48    8     A     778899xyz ======================== 上記のように、クエリでの条件を指定して抽出結果を表示させたいのですが、 どうすればよろしいでしょうか? また、クエリだけでは出来ない場合は、SQLで教えていただければ 幸いでございます。 お手数お掛けしますが、何とぞ宜しくお願い致します。

  • 【access】複数のフィールドの不一致クエリ

    アクセスはまったくのド素人です。 OS:WindowsXP バージョンは2000です。 A,Bのテーブルがあり、それぞれのレコードは以下の通りです。 A a b c 1 4 7 2 5 8 3 6 9 5 6 8   B  d e f 5 6 8 1 4 7 2 1 3 4 4 6 d,e,fのフィールドがa,b,cと一致しないレコード(ここでは『2 12 13』と『2 1 3』)をクエリで抜き出したい時はどうすればよいでしょうか? d,e,fに『Is Null』を指定して不一致クエリを実行しても思うように行きませんでした。

  • Access #エラーについて

    Access初心者です。 よろしくお願いいたします。 [前提]  テーブルA のIDに紐づけてクエリBの数値をクエリCで反映させたい。  〈詳細データ〉   ・テーブルA    [ID] [名称]       1   あ     2   い     3   う     4   え     5   お   ・クエリB    [ID] [数値]     2   10     3   20     5   40   ・クエリC    [ID]  [名称] [数値]     1    あ  #エラー     2    い   10     3    う    20     4    え  #エラー     5    お   40   ・”テーブルAの[ID]”の全レコードと”クエリBの[ID]”の同じ結合フィールドだけを含めてリレーションを行っている。    ・クエリCの算式: IIf(IsError([クエリB].[数値]),0,[クエリB].[数値])  [質問]    ・クエリCの『#エラー』部分を0にしたいのですが、何か良い方法はございませんでしょうか。   ・そもそも上記のロジックは無理がありますでしょうか。    アクセスはあまりいじったことがございません。ご回答いただけますと幸いです。   よろしくお願いいたします。

  • [access]フィールドの中の特定の文字の数を出したい。

    アクセス(Ver.2000)のテーブルの、一つのフィールド内に 色々な文字が並んでおります。 その中の特定の文字の数を数えたいのですが、クエリで数を出す方法は? 例えば 一行目のフィールドに『abc』 二行目のフィールドに『bcc』 という二つのレコードがあったとします。 上記をクエリで、 『a』→ 1 『b』→ 2 『c』→ 3 というように各文字の数を出したいのですが、 どのような方法で出せるでしょうか? 分かる方ご教授よろしくお願いします。

  • アクセス:文字レコードの集計をクエリで次のようなことを。

    こんにちは。アクセス初心者です。よろしくお願いします。 テーブル、もしくはクエリで次のようなものがあるとします。 id  氏名       A     B     C    D  ・・・ 28 山田 太郎  ○○ 88 海川 花子      △△ 28 山田 太郎          □□ 28 山田 太郎             △□ 88 海川 花子 ×× を id 氏名      A    B    C  D ・・・ 28 山田 太郎  ○○      □□ △□ 88 海川 花子  ××  △△ のようにまとめるクエリでの加工は可能でしょうか? 前提として、1レコードにid、氏名のほかは一つのフィールドを選んで入力することとしています。 よろしくお願いします。

  • Access クエリについて

    Accessのテーブル1に、フィールド「コード」「回数」があり、レコードとして A,32 B,20 C,13 ・・・というように、ランダムなコードと回数がセットされているとします。コードは主キーです。 このテーブル1を元にしたクエリで A,1 A,2 A,3 ・・・ A,32 B,1 B,2 ・・・ B,20 C,1 C,2 ・・・ C,13 というように、コードごとに「回数」と同じ数のレコードがクエリ上に生成されるようにしたいのですが、こういうことは出来るのでしょうか?出来ればSQLで回答いただけないでしょうか。

専門家に質問してみよう