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

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

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

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

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

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

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

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

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

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved