E-mailアドレスを検索するときの注意点(スクリプトを使用する)

今回は、メールアドレスで検索する際の注意点で書いた内容をもとに、
検索する人が
「検索条件にメールアドレスをそのまま入力しても、
 目的のメールアドレスのレコードが検索できるようにする」スクリプト
を作る方法のご紹介です。

2022年4月のブログ「E-mailアドレスを検索するときの注意」にも書きましたが、

検索モードで条件を指定する際、
xxxxx@yyyyy.com
と指定しても検索結果に条件に指定したメールアドレスのレコードは検索されません。

「@」がFileMaker Pro で認識される検索演算子など、特別な意味を持つ文字
に該当するため、入力した値のままでは検索ができないのです。

どうすればよいか、FileMakerのヘルプのレコード内のテキストの検索に記載されています。

xxxxx\@yyyyy.com
バックスラッシュを前につける、または
xxxxx"@"yyyyy.com
ダブルクォーテーションで囲うと検索ができるんです。

xxxxx\@yyyyy.com
または、
xxxxx"@"yyyyy.com
と指定するのは面倒ですし、忘れることもありそうです。

検索条件の指定の仕方や実行方法は、
----------
ブラウズモードで「検索条件指定用」のグローバルフィールドにメールアドレスを指定させ、
検索モードに切り替えて「メールアドレス」フィールドにグローバルフィールドの値を設定するケース
----------
検索モードで「メールアドレス」フィールドに条件としてメールアドレスを指定するケース
----------

など、いろいろあると思います。
いずれのケースも、
検索モードで検索実行する前に「メールアドレス」フィールドの値に@が含まれていたら、
\@、または"@"と置き換えるようにすれば、
検索条件を指定する際、面倒な記号を入れなくても検索ができるようになります。

追加するステップは1つだけ。
検索を実行するスクリプトの「検索実行」ステップの前に、
「フィールド設定」ステップを追加します。

「フィールド設定」ステップの
ターゲットフィールドには「メールアドレス」フィールドを指定。
計算結果には、
Substitute ( メールアドレス ; "@" ; "\\@" )
または
Substitute ( メールアドレス ; "@" ; "\"@\"" )
と指定します。

このステップを追加するだけで@を含むメールアドレスの検索が便利になります。

余談ですが、、、試しにやってみたら
Substitute ( メールアドレス ; "@" ; "\@" )
でも検索できました。。。が、ヘルプを参考にするとこれが正しいのか不明。。。

それから、大切なこと。
検索実行前の「フールド設定」で文字の置き換えをするのは、
検索条件に「xxxxx@yyyyy.com」と指定している場合です。

「xxxxx\@yyyyy.com」
または、
「xxxxx"@"yyyyy.com」
と指定してる場合は置換えないようにしなければなりません。

このような条件指定がされているケースを考慮するには、
関数やIFステップを使用し、必要な時だけ文字の置き換えができるようにする必要があります。

今回もお決まりの一文です…

ブログに記載させていただいた内容についてのご質問はお受けしておりませんので、
ご了承くださいませ。

なお、間違った記載などありましたら、こっそり教えていただけるとうれしいです。


投稿者