• ベストアンサー

Accessの電話番号フィールド

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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

専門家に質問してみよう