• ベストアンサー

ファイルメーカー(FileMaker)の関数を使って入力を制限

例えばファイルメーカーPro(FileMaker Pro 7.0v3)でメールアドレスのテキストフィールドを作成する場合。 入力できるテキストを40字(半角小文字a~z、半角0~9、半角アッ トマーク、半角ピリオド、半角ハイフン、半角アンダースコア)のみに制限する方法はありますか? ※メールアドレスはあくまでも一例です。

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

  • ベストアンサー
回答No.3

ウチは5.5なんですが、 グローバルフィールド「AllowChar」を繰り返し40で作成。中身は許 可する文字を列記したもの 計算フィールド「AllowCharCount」を繰り返し40で作成。計算式は PatternCount(Extend(アドレス), AllowChar) 「アドレス」の制限を計算して求める Length(アドレス) =Sum(AllowCharCount) これでオッケーでした。

OK_hiroshi
質問者

お礼

師匠と呼ばせてください!m(_ _)m

その他の回答 (2)

回答No.2

単なる思いつきですが、まず、「@.-_」をSubstitute関数で削除します。 その結果、abcdefghijklmnopqrstuvwxyz0123456789が残ります。 これは、たとえば vp6o0zerhybt4f8s3umagj2knw5i71cdql9x と並んでいても1ワードです。 つまり、このワード数が2以上となるときにはあいだに「%$空白#あ」といった文字が含まれていることになります。 ところが、前後に「%$空白#」がある場合にはこの限りでないため、 Length ( LeftWords ( アドレス ; 1 ) ) - Length ( アドレス ) 等を用いてチェックします。 大文字の使用はLower関数またはUpper関数を使用して一致不一致でチェックできます。 これらすべてがANDで満たされればOKとなります。 ただし詳細な検証をしておりません。誤りがあったらごめんなさい(単なる思いつきなので誤りがありそうな気がします)。

OK_hiroshi
質問者

お礼

う~ん、なるほど…。 WordCountによるチェックまでは考えが及びませんでした。 さっそくテストしてみたところ正常に動くようです。 って言うか“Length(LeftWords(アドレス;1))-Length(アドレス)”あたりの関数がサラッと出てくるところを見るとかなりの上級者ですね。 しかしながら上記の方法で私が危惧する点は、 数多ある特殊キャラクタの特性をすべて把握できていないため、 記述した関数が期待どおりに動作するか確信が持てないことです。 例えば“ichiro.s”では“1”の値が返されるにも関わらず、 “ichiro^s”では“2”の値が返ってくるように、 私が予想していない特殊キャラクタを入力された場合は制限を通り抜けてしまう恐れがあるのです。 OS環境による認識方法の違いも完全には否定できませんしね…。 なので可能であるなら入力できないキャラクタをチェックする方法よりも、 入力できるキャラクタをビシッと指定する方法がないものかと苦慮している次第です。

  • aqula
  • ベストアンサー率60% (70/115)
回答No.1

フィールド定義 > オプション > 入力値の制限 > 計算式で制限 Filter ( メールアドレス;"abcdefghijklmnopqrstuvwxyz0123456789@.-_" ) = メールアドレス でどうですか?他にも手はありそうですけど…

OK_hiroshi
質問者

お礼

いやいや…。それではダメです…。 その関数では任意の文字列の中から「abcdefghijklmnopqrstuvwxyz0123456789@.-_」と言う文字列だけを取り出すことになります。 私が考えた中で一番実現性があると思ったのは、 別に多数のテキストフィールド(メールアドレス_001~100)を作成して、 メールアドレスの文字列を先頭から一文字ずつ自動入力で取り出す方法です。 この方法でテキストフィールド(メールアドレス_001~100)に値一覧(abcdefghijklmnopqrstuvwxyz0123456789@.-_)の制限をかければ、 上記の40文字以外のテキストが入力できなくなると思ったのですが、 当然多数(あるいは無限?)のテキストフィールドが必要になりデータベースが複雑になってしまいますし、 何より値一覧では“ハイフン”の入力が出来ないので断念しました。 (しかし上記の方法も文字数が少ないテキストフィールドに限れば使えそうですね♪) やはり「PatternCount」で入力できない文字を全て禁止した方が良いのでしょうか…。

関連するQ&A

  • FileMaker ファイルメーカー

    MacOS環境でファイルメーカーPro(FileMaker Pro 7.0v3)を使用していますが、オブジェクトフィールドに挿入したPNGの画像が印刷されないようです…。JPGの画像は正常に印刷されるのでドライバ等の問題ではないようですが…。あっ!PDFへの書き出しも出来ないようです…。(T_T)

    • ベストアンサー
    • Mac
  • FileMaker Proについて教えてください

    Accessを使ったことがある者です。 FileMaker Proを使ってみているのですが、フィールドの定義で例えば 顧客IDを作って、それをシリアル番号に設定しても、フィールドのタイプが ”テキスト”のままで”数字”にはならないのですが、FileMaker Proでは シリアル番号はテキストとして扱われているのでしょうか? それともシリアル番号にした後に自分で数字型に変更する 必要があるのでしょうか? よろしくお願いいたします。

  • FileMakerの文字の一括変換について

     The Card Ver.7.7のデータをFileMaker Pro7にテキスト・ファイル形式でインポートしたのですが、改行を含むデータをFileMakerの1つのフィールドに収めることができないため、改行マークをセミコロンに転換して転送しました。  そこでFileMakerの数万レコード中の同名フィールドに存在するセミコロンを一括してもう一度改行に転換する方法が有りましたら教えて下さい。  当該フィールド中のデータは、英文と和文のテキストで、和文は1フィールドに原稿用紙1~3枚程度、英文はその2、3倍のボリュームが有ります。

  • filemaker pro6での画像ファイルの扱いについて

    はじめまして、お世話になります。 この度win版filemaker pro6で顧客情報の管理をするデータベースを作成しているのですが、画像の取り扱いで行き詰ってしまいました。 実行されたい結果としては、 スクリプトで挿入されるテキストフィールドがあり、 挿入が実行されてフィールドにテキストが存在した場合、 別のオブジェクトフィールドに画像(参照データのみ)を挿入する といった処理なのですが、こういった処理はpro6で実現は可能なのでしょうか? また、画像を計算結果で(ファイルパスの一部をフィールドで変数のようにしたい)、ということも実現はできるのでしょうか? もし、方法がわかる方がいらっしゃれば、ご教授願えれば、と思います。 よろしくお願いします。

  • FileMaker スクリプト

    FileMaker Proで下記のようなケースでよいスクリプトの組み方があればお教えください。  当方はFileMaker Pro 5.5を使用しています。初心者です。 ---------------- 甲 乙 A X B X A X B X B X Y Y A Y B Y Z X A X B X A X B X Y Y A Y Z X A X ---------------- フィールド甲を参照し、フィールド乙に自動的に「X」か「Y」を上のレコードから順次返すスクリプトを組みたいと考えています。 (1)フィールド甲に最初にYがでてくるまではXを返す。 (2)Yがでてきたら、以下のレコードのフィールド乙にYを返す。 (3)Yが登場したあと、最初に「Z」がでてきたレコードからはフィールド乙にXを返す。 (4)次にYが出てくるまでXを返す。 以下繰り返し 以前、類似した事例にて教わったことを応用し、 if、loopを駆使して試みましたが、うまくいきません。

  • メールアドレスのルールについて

    お世話になります。 ふと思ったことですが、メールアドレスにハイフンやアンダースコアをよく用いますよね? a_bcd@****.ne.jpのように。 アンダースコアはアカウント名によく見かける気がします。 逆にドメインにアンダースコアは見かけない気がします。 なにかルールがあるのでしょうか? 思い込みでしょうか?

  • キー入力制限について

    OS:windows2000pro VB:VB6.0sp5 テキストボックス(オブジェクト名:text1)に下記文字以外は 入力不可にする方法(プログラム)を教えてください 初歩的なご質問かと存じますがよろしくお願いいたします 英字:A~Z(大文字) 英字:a~z(小文字) 数字:0,1,2,3,4,5,6,7,8,9 記号:-(ハイフン),_(アンダーバー)

  • ハイフンの入力

    ワード2002で半角英数でハイフンの入力が出来なくなりました。ノートパソコンなので「ほ」の字を打てば前は出ていましたが、今は「クウォート」のようなモノが出てきます。尚メールはハイフンが出てきます。

  • エクセルで入力制限

    メールアドレスを入力するセルに入力制限をしたいのですが方法がわかりません。 やりたいことは全角文字を半角文字にしたいだけなのですが。。。

  • メールアドレス不正で返信できないのですが

    Gmailクライアントで、下記メールアドレス、 taku_a.r.a_4@(ここは省略) からメールが来たのですが、返信しようとすると不正な文字が入っているとしてはじかれてしまいます。 どこが悪いのでしょうか? Gmailのヘルプを見ると; ユーザー名には、半角英字(a-z)、半角数字(0-9)、ダッシュ(-)、アンダースコア(_)、アポストロフィ(')、ピリオド(.)を使用できます。 ・・・となっており、特に不正な文字は無いような気がするのですが。 よろしくお願いいたします。

    • ベストアンサー
    • Gmail