みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
フィールドに
日時(日付)
有・無(テキスト) チェックボックス で入力
してある状態で
同じ日に 有りが 5つ以上すでに入力している場合 さらに 入力しようとするとエラー等が出るようにするには
どのようにすれば良いでしょうか?
日(計算)Case(有無="有";GetAsDate(日時)) のフィールドを作って自己リレーションする。
Count(テーブル2::日)<5
で制限
>同じ日に 有りが 5つ以上すでに入力している場合
既に「有」が5つ以上入力済みのレコード群は無視して。という意味ですか?
Offline
すいません説明が間違っていました
日時A(日付)
日時B(日付)
有・無(テキスト)
の状態で 1日だけ有(日時A・日時Bともに同日) で入力したり 日時Aから日時Bまで(例:日時A7/11 日時B 7/14) 有 で
入力したりしています。
その状態で、7/11がすでに5つ有がはいってるときに、 日時A7/9~日時B7/12 で入力したときに
エラーが出るように(入力した期間のうち1日でも5つ以上があれば)したいのです。
既に5つ以上入力済みのものは無視してOKです。
よろしくお願いします
sorterさんの回答を参考にして 解決しました
ありがとうございます!
何度もすいません
解決してませんでした。勘違いです。。><
日時Aから日時Bまで
このフィールドが、必ず
日時A <= 日時B
となっているとして、
グローバルフィールド 有無g を作り「有」を入力、
リレーションを
日時A <= 日時B
and
日付B >= 日付A
and
有無g = 有無
として、
このリレーションのCountが4以下の制限でいいですね。
ただし、この制限はレコード確定時に判定されます。
Last edited by チポ (2014-07-22 11:52:55)
Offline
すいません初心者で、
リレーションを作成してテーブルをつなぎ、
有無g のグローバルフィールド作成して有と入力 ここまでやったのですが
この先がわからないです。
>このリレーションのCount
はどのようにしたらいいでしょうか?
有無フィールドの入力値の制限・計算式で制限の計算式の設定です。
計算式を
Count ( リレーション::有無 ) <= 4
で制限できるでしょう。
Offline
ありがとうございます
有・無フィールドに計算式をいれたところ
有 のときにも無のときにも規定数以上でエラーがでてしまいます。
有のときだけ出るようにするのはどうしたらいいでしょうか
リレーションが間違っているよ思いますよ。
リレーションの方法
元のテーブルをコピーして、「テーブル 2」としたとします。
テーブル テーブル 2
日時A <= 日時B
and
日時B >= 日時A
and
有無g = 有無
この
有無g には「有」と入力
有無 にはラジオボタンで「有」か「無」どちらかを入力
この通りか確認してください。
Last edited by チポ (2014-07-22 17:07:14)
Offline
エラーを無視して入力するなどして6つ以上有がある場合は無を入力しても、有のうちの1つを消去しようとしてもエラーが出てしまいますね。
エラーを無視して入力できないように制限するか、入力値の制限の計算式を
Count ( リレーション::有無 ) <= 4 or IsEmpty ( 有無 ) or 有無 = "無"
などにすると解消できると思います。
Offline
トリガにするという手も有りかも。
Offline
皆様回答ありがとうございます。
新規にデータベースを作成してやってみるとできました。
ありがとうございます
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 529.28 KiB (Peak: 550.19 KiB) ]