#454 メールアドレスを@マークで前後に分けるには? クエリ

メールアドレスを@マークで区切ってその前後を別々の演算フィールドに出力する方法です。

ポイントは次の2点です。
  • InStr関数を使って@マークの位置を検出する

  • Mid$関数を使ってその位置の前後をそれぞれ取り出す

実際の演算式は次のようになります。なお、メールアドレスが保存されているテーブルのフィールド名は「メールアドレス」とします。また、IIf構文は、メールアドレスが未入力の場合に「#エラー」表示を出さないようにするためのものです。
  • @マークの前:
    アドレス: IIf(Not IsNull([メールアドレス]),Mid$([メールアドレス],1,InStr([メールアドレス],"@")-1),"")

  • @マークの後ろ:
    ドメイン: IIf(Not IsNull([メールアドレス]),Mid$([メールアドレス],InStr([メールアドレス],"@")+1),"")

クエリのデザイン:
クエリのデザインビュー

データシートビューの実行結果:
クエリのデータシートビュー

※このクエリをフォームに表示する際、前後に分けたそれぞれを別のテキストボックスに出力することは可能ですが、前後別々に編集することはできません(クエリの演算フィールドのため)。それが必要な場合には、テーブルデザインの段階でそれぞれを別のフィールドとする必要があります。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved