プロが教えるわが家の防犯対策術!

「FileMaker Pro11」を使っています。
顧客情報の[名前]や[メールアドレス]の入ったデータベースがあり、
同一人物のレコードだけ表示させる時によく

1.メールアドレスをコピー
2.検索ボタン
3.メールアドレスを貼り付け
4.「@」以降を削除(@docomo.ne.jpなど)
5.検索実行

という手順でやっています。
(検索条件内に「@」があるとうまくいかないため)


これを、スクリプトの入ったワンボタンで出来るのではないかと調べたところ、
アットマークの前にエンマークを入れれば検索出来るとのこと。

ボタンを作り、「対象レコード」の「検索実行」、検索条件の「指定」で
「条件」に使える命令文を持ってきて

Substitute ( メールアドレス ; "@" ; "\@" )

としました。ボタンを押してみると、
メールアドレスのボックス内に命令文Substitute ( メールアドレス ; "@" ; "\@" )が
そのまま入ってしまい、検索は失敗しました。

やってる事がおかしい気がしますが、どこがいけないのでしょうか?
すいませんが分かる人いましたらお願いします。

A 回答 (3件)

アドレスはコピーしないで検索のスクリプトを


・変数を設定--変数の名前$n 値はメールアドレスフィールドのフィールド値
・検索モードに切り替え----一時停止しない
・フィールド設定-----メールアドレスフィールドを計算結果 
  Substitute ( $n ; "@" ; "\@" ) にフィールド設定
・検索実行
とか
メールアドレスで自己リレーションすると、「関連レコード移動」ステップだけで
できそう。
    • good
    • 0
この回答へのお礼

でで、出来ました……。
「フィールド設定」って項目があったのですね。。
「スクリプト実行」で手書きしていて、どうやっても止まってしまっていました。

1.変数を設定[$mail;値:テーブル名::メールアドレス]
2.検索モードに切り替え[](一時停止:未チェック)
3.フィールド設定[テーブル名::メールアドレス;Substitute($mail;"@";"\@")]
4.検索実行[]

こんな感じです。
言われたまんまですね(汗)

ありがとうございました!

お礼日時:2011/02/17 13:53

「@」は検索記号なのでそのままではうまく検索できません。


通常はダブルクォーテーションでくくって検索します。
× abc@docomo.ne.jp
○"abc@docomo.ne.jp"
\はエスケープ記号で、直後の記号を無視するので@の前に入れることで検索できます。

> 「対象レコード」の「検索実行」、検索条件の「指定」
には計算式は使えません。実施の条件だけです。
また、「検索モードに切り替え」の後では現在のレコードを外れるので
chieffishさんの回答のように事前に変数かクリップボードの格納する必要が有ります。
    • good
    • 0
この回答へのお礼

場合によって¥とダブルクォーテーションを使い分けた方が
良さそうですね。

No2さんのやり方で行けました。
ありがとうございました。

お礼日時:2011/02/17 13:56

検索条件の設定じゃなくて、検索モードに切り替え[]の後に


フィールド設定で式を入れたらどうですか?
    • good
    • 0
この回答へのお礼

そういうことだったんですね。
基礎的な事だったようで……。

No2さんの通りで行けました。
ありがとうございました。

お礼日時:2011/02/17 13:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!