• ベストアンサー

Accessの電話番号フィールド

Access2000以降について質問です。 顧客記録の電話番号フィールドについてお尋ねします。 異なるデータソース(テキスト形式)から各々に電話番号フィールドを含む2つのテーブルを作成したのですが、電話番号のフィールドがテーブル1では「ハイフンつき」の電話番号、テーブル2のほうでは「ハイフンなし」の電話番号になっています。また、いずれのフィールドもデータ型は「テキスト型」になっています。 やりたいことはテーブル1の電話番号にはないテーブル2の電話番号を含むレコードを不一致クエリを用いて抽出したいのですが、ハイフンがあるために全て不一致になってしまいます。 ハイフンを入れるのは地方の電話番号が多いため市外局番が3桁や4桁などで不揃いのためLEFT、RIGHT関数を用いて入れるのは不可能です。 そこでテーブル1のハイフンつき電話番号フィールドからハイフンを取り除きたいのですが、なにか方法はありませんか?VBAは分からないのでそれ以外でやる方法があれば教えて下さい。お願いします。

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

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

選択クエリで、式1にReplace([電話番号],"-","")でやってみると 下記になりましたが、これが使えませんか。 ID 氏名 電話番号 重複 式1 1 山田 03-2345-6543 a 0323456543 2 大島 042-2345-2345 04223452345 3 下田 0720-34-3456 a 0720343456 4 小出 042-345-2345 0423452345 5 中田 07523-23456 a 0752323456 (たまたまあったテーブルを使っただけで、上記「重複」フィールドは意味ないので無視してください。)

shinchan37
質問者

お礼

Replaceという関数が使えたんですね。知りませんでした。 実際やってみると、うまくいきました。 どうもありがとうございました。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

#2のimogasiさんが回答していますがテーブル1のクエリを作り電話番号をReplace([電話番号],"-","")で-を除くようにしてそのクエリを更新クエリにしてテーブル1の電話番号を-抜きで更新してから不一致クエリを作って処理しても良いし。テーブル1の電話番号の-は残しておきたければReplaceして-を除いたクエリとテーブル2を使って不一致クエリを作れば出来ます。 これが簡単です。

shinchan37
質問者

お礼

早速のお返事ありがとうございます。 確かにReplaceを利用したクエリでやったほうが便利そうです。 ありがとうございました。

  • s___o
  • ベストアンサー率35% (108/306)
回答No.1

単純なやり方として、 (1) 電話番号フィールドをコピー (2) Excelに貼り付け (3) Excelでハイフンを取り除く(置換) (4) (3)をコピー (5) Accessの電話番号フィールドに貼り付け ってのはどうでしょう?

shinchan37
質問者

お礼

これは非常に簡単なやり方でした。 フィールド全体をコピーしてExcelに貼り付けるなんて想像もしませんでしたよ。 どうもありがとうございました。

関連するQ&A

  • 5桁の電話番号

    5桁の電話番号ってありますか? TEL ○-○○○○ よくあるインターネットでの入力フォームをつくっております。 電話番号を入力する際に普通は、市外局番や携帯電話で 10桁か11桁で2箇所にハイフンを入れたとしても 普通、10桁から13桁になると思います。 仮に市外局番を抜かしても最低6桁以上になると思います。 そこで6桁未満14桁以上の電話番号をエラーにしたいですが ハイフンを抜かして5桁の電話番号ってありますか?。 また、ハイフンやカッコを使っても 14桁以上まで入力する人って普通いますか?。

  • Accessでの電話番号下4桁での検索について

    Access初心者です。 今Accessで顧客管理を作成しています。 フォームで電話番号の下4桁で検索し、該当の顧客の情報がフォームで見れるようにしたいのですが、クエリでの取り込むべきフィールドや抽出条件などがよくわかりません。 今現在はクエリに「電話番号」フィールドだけを取り込み、抽出条件に Right([Forms]![電話番号検索]![電話番号],4) というのを入れてます。 今の段階で作成しているものは、 ・ユーザーテーブル ・検索実行クエリ ・ユーザーフォーム ・書き込みフォーム ・電話番号検索フォーム ・開くマクロ ・閉じるマクロ ・最後のレコードへ移動するマクロ ・新しいレコードへ移動するマクロ ・書き込みマクロ ・終了マクロ 以上になります。 電話番号検索フォームで下4桁を入力し、検索ボタンを押すとユーザーフォームの該当の顧客の情報が表示されるようにしたいというのが目的です。 何卒ご指導の程よろしくお願い致します。

  • エクセルで電話番号にハイフンを入れるには?

    はじめまして、表題の通りですが、なかなか難しくてうまく解決できませんので、ここで質問させていただきます。 電話番号に半角のハイフン(-)を入れて見やすくしたいと考えています。 電話番号には090などで始まる携帯の番号、大阪のように06で始まる番号、京都のように075で始まる番号、西宮市のように0798で始まる番号といろいろ入力されています。それぞれの市外局番の後にハイフンを入れて、残りの番号が8桁なら4桁+ハイフン+4桁、7桁なら3桁+4桁、6桁なら2桁+ハイフン+4桁のようにハイフンを入れていくにはどうしたらよいでしょうか? (例) 09012345678→090-1234-5678 0612345678→06-1234-5678 0751234567→075-123-4567 0798123456→0798-12-3456

  • 電話番号の分割

    上司に電話番号を入力したエクセルシートを渡され 1234567890 09012345678 0501234567 ... これらを市外局番と次の番号と最後の番号に分けて表示するように言われました。 上で言うと              b列  c列 d列 1234-56-7890なので1234  56 7890 090-1234-5678なので090 1234 5678 050-123-4567なので050  123 4567というふうに a列にはハイフンの入ってない電話番号が入力されてます。 自分で考えたことは電話番号のa列のデータにハイフンを入力していって b列はLEFT関数とFIND関数で求めてc列ができなくて d列はたぶんすべて4桁なのでRIGHT関数でしようかと 思いましたがc列の求め方がわからず、できないままで... もっと簡単に??できる方法はないかと思いました。よろしくお願いしますm(__)m

  • 抽出する文字数が異なる場合

    Access2003 クエリを作成中です。 「アドレス」テーブルの「電話番号」フィールドの編集作業をしていますが、市外局番のみを取り出す、つまり、-(ハイフン)より、前を取り出したいです。 郵便番号の場合、3ケタ-4ケタの為、Mid関数を用いることができたのですが、電話番号の場合、それが出来ずに困っています。 03-1234-5678 090-1234-5678 0000-1234-5678 などがあり、郵便番号のように Mid(アドレス!郵便番号,1,3) AS 郵便3ケタ Mid関数を使って、○文字、抽出することができません。 電話番号は、テーブル「アドレス」/フィールド「電話番号」です。

  • 電話番号の適正位置に「ー」を表示したい

    こんにちは。 システムの入替に伴い、顧客のデータを移行しようとしています。 その中で電話番号の項目があるのですが、現システムでは ハイフンを表示しない形式で登録されています。 新システムのDBではハイフン付で登録しなければならないのですが、 市外局番・市内局番の桁数が地域によって異なるため、 ハイフンで区切る適正位置がわからず困っています。 ネットから市外局番一覧を入手したのですが、ExcelのVlookupで 突合させるとニアリーイコールのものを引っ張ってしまい、 上手にセットすることができません。 どなたか良い方法や変換ソフトなどをご存知の方がいらっしゃったら教えてください。よろしくお願いします。

  • 電話番号かどうかを判断したい(Perl)

    フォームに入力された文字が電話番号かどうかを判断したいと考えています。 ハイフンは使いません。 if ($$in{tel} =‾ /¥-/) { &error("電話番号はハイフン( - )なしの10桁または11桁でご記入ください"); } if ($$in{tel} =‾ /^\d{10,}+$/) { &error("電話番号はハイフン( - )なしの市外局番からご記入ください"); } このようにしてみたのですが、うまく動きません。 どうすればいいんでしょうか... よければ教えてください。

    • ベストアンサー
    • Perl
  • ACCESS2002で市内局番だけを抜き出す関数

    ACCESS2002初心者です。 ACCESSのフォーム上で市外局番から入力する『電話番号』というテキストボックスがあります。 この電話番号を「市外局番」・「市内局番」・「局番」それぞれを切り取りレポートに印字されるように、 コントロールソースに書く関数を教えていただきたいです。 入力型は【000-000-0000】または【00-0000-0000】【0-00000-0000】 といったように市外局番、市内局番ともに文字数が変わります。 市外局番は =Left([電話番号],Instr(1,[電話番号],"-")-1) このクエリで表示されました。 局番は必ず下4桁なのでRight関数で表示されました。 問題は市内局番です。 =Mid([電話番号],InStr([電話番号],"-")+1) このクエリだと市内局番から下は全て表示されてしまいます。 どうしたら良いでしょうか? ご回答のほど、どうかよろしくお願いいたします。

  • エクセルで電話番号を - で分割する方法

    エクセルで電話番号のデータが入っています。ハイフンごとで3つのセルに分けて取り出す関数があれば教えてください。 01-2345-6789 012-345-6789 0123-45-6789 01234-5-6789 050-1234-5678 とハイフンの位置も桁も種類があります。左右の部分はLEFTとRIGHTで取り出せるのですが真ん中がうまく取り出せません。 よろしくお願いします。

  • Accessのクエリについて質問です。

    Accessのクエリについて質問です。 T_元データ、T_書換データという2つのテーブルがあります。 それぞれのテーブルは顧客番号、金額1、金額2、金額3というフィールドがあります。 テーブル生成クエリで、以下のような新規テーブルを生成したいと思います。 ---------------------------------------------------------------- 【1】顧客番号が一致した場合、T_元データの金額1、金額2、金額3を T_書換データの金額1、金額2、金額3に書き換えたい。 【2】顧客番号一致しない場合、T_元データの金額1、金額2、金額3を をのまま表示させたい。 ---------------------------------------------------------------- 【1】については正常に書き換えができていますが、 顧客番号が一致しない場合は、金額1、金額2、金額3がブランクになってしまいます。 【2】のような動きにするにはどうしたらよいのでしょうか? ちなみに、結合プロパティは以下のように設定しています。 左のテーブル名:T_元データ  右のテーブル名:T_書換データ 左の列見出し:顧客番号    右の列見出し:顧客番号 2を選択 ('T_元データ'の全レコードと'T_書換データ'の同じ結合フィールドのレコードだけを含め る。) よろしくお願いいたします。

専門家に質問してみよう