みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
スクリプトでレコードコピー時、同じ「日付」の時に同じ「名前」の場合はコピー禁止(or アラート)するようにできますか?
fmp 19
Mac OS Catalina
コピーとは複製のことだと思いますが、複製すれば必ず同じ値になります(計算値自動入力などにしてない場合)
ので、「コピー禁止」は不可能です。
List(日付;名前)の計算値自動入力フィールドを「常時」「ユニーク」に制限しておけば、レコード確定時に警告が出て、そのままでは保存できなくなります。(どちらかを修正するか、複製自体をキャンセルするか)
「同じ」
とは何と同じでしょうか?
himadaneeさんも書かれていますが、
コピー元とコピーされたレコードは当然同じですよね。
Offline
すみません。説明が間違ってました。
指定レコードをスクリプトでレコード複製時、日付フィールドは入力値の自動化で「作成日」は自動入力して、
テキストフィールド「名前」を、同じ作成日にダブって入力できないようにしたいのです。
スクリプトは
ーーーーーーーーーーーーーーーーーーーーーー
レコード/検索条件複製
消去[選択;クラス::出欠]
消去[選択;クラス::評価]
テキスト挿入[選択;クラス::出欠「出席」]
ーーーーーーーーーーーーーーーーーーーーーー
その日付と名前で検索して、見つからなければ複製、でいいのでは。
共有ファイルで複数人が同時に実行すると、重複するかもしれないかな。
本日を入力するグローバルフィールドを作れば、
リレーションの関連レコードの数で同じレコードの有無を見れますね。
検索不要です。
何かの出席簿のようですが、
欠席のレコードは作らないのでしょうか?
もし全員分のレコードを作るのなら、
名簿のマスタをインポートすることで必要分のレコードを一気に作れますよ。
Offline
確かに、出欠に「出席」と入れるからには欠席のレコードも作りそうなものです。
検索しない方がよければExecuteSQL関数を使ってもいいのですが、検索する名前をどこかに入れないといけませんね...
ExecuteSQL("
SELECT COUNT(*)
FROM \"クラス\"
WHERE \"作成日\"=?
AND \"名前\"=?
";"";"";Get(日付);調べる名前)
作成日が自動入力なら、名前も未入力値の値一覧から選択とかも考えられます。
皆様ありがとうございます。
本日を入力するグローバルフィールドを作れば、
リレーションの関連レコードの数で同じレコードの有無を見れますね。
検索不要です。何かの出席簿のようですが、
欠席のレコードは作らないのでしょうか?
もし全員分のレコードを作るのなら、
名簿のマスタをインポートすることで必要分のレコードを一気に作れますよ。
学校出席簿を制作してます。
60人程の名簿です。学年、クラスに分けて検索した必要分のレコードをインポート...
詳しく知りたいです。
開いているFMファイルをインポートすると、
その時の対象フィールドをインポートします。
必要な分だけを検索しておいて、
それをインポート。
日付は作成時の自動入力か、全置換で入力。
出欠入力は、フィールドをボタンにしておいて、
入力できるでしょう。
Offline
生徒のマスターテーブルを作っておき、そこから必要に応じてインポートするのが楽でしょうね。
Offline
皆様ありがとうございます。
チポ様の方法で、できました。
Pages: 1
[ Generated in 0.008 seconds, 10 queries executed - Memory usage: 521.77 KiB (Peak: 526.31 KiB) ]