• ベストアンサー

ファイルメーカ Case("テキスト”)

テーブル「TB2」~~~~~~ フィールド「生年月日」---数字 フィールド「目的日」-----数字 フィールド「年齢」-------計算--------計算、「目的日」-「生年月日」 フィールド「B」----------計算--------非保存、= Case(年齢=1 or 年齢=5 or 年齢=8;1) これで正常にフィールド「B」は目的とするレコードのみ「1」になりました。(それ以外は「空」) ここにテーブル「TB1」があって~~~~~~ フィールド「A」---------テキスト-----グローバル テーブル「TB2」のフィールド「B」の「年齢=1 or 年齢=5 or 年齢=8」の部分を フィールド「B」---------計算---------非保存、= Case(テーブル「TB1」;;フィールド「A」;1) に変更しました。 結果、テーブル「TB2」のフィールド「B」は全て「1」になってしまいます。 どのようにしたら、条件にあったものだけ「1」にできるでしょうか?

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

  • ベストアンサー
  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.4

>Case文の条件は, テキストまたは数値式となっていたので, テキスト式または数値式という意味かと思います。 私もご使用目的をよく理解していませんが、使用者フィールドを作ってその値で計算フィールドのフィールド「A」の 結果を変えるとか、使用者がアカウントでしたらアカウント名を取得して変えるとかした方がいいと思います。 グローバルフィールドはリレーションが無くても参照は出来るのですが・・・

situmonnsya
質問者

お礼

そうなんですか てっきり、ただの文字列を式に変換してやってくれるかと思ってました。 他の方法で実現出来そうなので、もうちょっと勉強します。 ありがとうございました。

その他の回答 (4)

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

> グローバルフィールドはリレーションが無くても参照は出来るのですが・・・ 本当だ・・・知らなかった フィールド「A」の条件を改行して入れて、 (値一覧でチェックボックスの方が使いやすいかな) フィールド「B」= PatternCount ( TB1::A;年齢)

situmonnsya
質問者

お礼

他の方法で自己解決しました。 でも参考になりました。 こんど試してみます。 ありがとうございました。

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

質問の意味が分からないので、同じ構成のファイルを作ってみました。 フィールド「B」---計算---非保存、= Case(テーブル「TB1」;;フィールド「A」;1) この定義で「フィールドが見つかりません」となります。 実際の式をコピペした方がいいと思いますよ。 たぶんリレーションをとっていて = Case(リレーション名::フィールド「A」;1)なのでしょうが、 フィールド「A」がグローバルなので全レコード共通の値になり、計算結果もすべて共通の結果になるのは想像がつきます。 わからないのは「何がしたいのか」

situmonnsya
質問者

補足

え~~?、 先にTB1を作っておいてもダメですか? リレーションはしてません。 したいことは、使用する人によって目的とする条件が違うので、「設定メニュー」のようなものを作り(TB1)、条件式を変えれるようにしたかったのですが。 もちろんTB1のAのテキスト生成は使用者がマウスクリックだけで自動生成できるように工夫してますが。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.2

"年齢=1 or 年齢=5 or 年齢=8"は単にテキストですからこの式のような内容は全く無意味となります。

situmonnsya
質問者

補足

Case文の条件は, テキストまたは数値式となっていたので, TB1のフィールドAに条件式をテキストで書いたものも受付けるかと思ったのですが。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

>非保存、= Case(テーブル「TB1」;;フィールド「A」;1) の式はテーブル「TB1」;;フィールド「A」が真(=1)の時に結果として1を返すわけですから フィールド「A」か1以外の時は空白になりそうですけど・・・

situmonnsya
質問者

補足

説明が不足してました。 テーブル「TB1」 フィールド「A」---------テキスト-----グローバル 上記のフィールドは"年齢=1 or 年齢=5 or 年齢=8"としています。

関連するQ&A