みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
こちらURLにあるような事をしたいと思っています。
https://xxup.org/file/ixfay.png
Filemakerを始めて1ヶ月なのですが、全然わからないので教えて下さい。他の言語は経験しています。
社員マスタと社員マスタコピー先という2つのテーブルがあったとします。
社員名同士でリレーションが組まれています。
レイアウト上に2つのポータルが表示されています。1つは社員マスタ、もう一つは社員マスタコピー先です。
社員マスタにはチェックボックスを付けることができます。チェックボックスが付いたもののみ、社員マスタコピー先のポータルへコピーしたいです。
SQLだとInsert into 社員マスタコピー先 select * from 社員マスタ where ...でやれるのですが、
filemakerの場合どうしたらよいでしょうか?
または、社員マスタポータルから1行ずつ見て、チェックが入っているものは社員マスタコピー先に移動ということを
スクリプトでやったらいいような気がしますが、そのスクリプトが全くわかりません。
どうぞよろしくおねがいします。
Offline
レコードをコピーする目的は何でしょうか?
目的によっては同じ構造のテーブルを2つ持つ必要はありません。
Offline
ExecuteSQL()関数を使って、SQLでINSERT INTO ... SELECTも実行できますよ。
リファレンスの18〜19ページ参照。
https://fmhelp.filemaker.com/docs/16/ja … erence.pdf
日本語のテーブル名/フィールド名は""で囲うのがルールです。
スクリプトでも実現可能ですが、2つのテーブルをリアルタイムに同期するのが望ましいのか
何かのタイミングで一括コピーすれば良いのか、目的によって作りは変わると思います。
上記SQLを使うなら一括コピーでしょうか?
Offline
ExecuteSQL 関数では INSERT はサポートされていません。
SQL を実行ではサポートされていますが。
Offline
Mozさん、ご指摘ありがとうございます。
リファレンスの最初(5ページ)に「FileMaker Pro の [ExecuteSQL] 関数は SELECT ステートメントのみをサポートします。」とありますね。
Last edited by koeda (2020-06-10 18:48:05)
Offline
ポータルで表示しているテーブルを、別テーブルのポータルのテーブルと同じものにしておいて、フィルターでチェックすれば表示、という設定にしておけばいいのでは。
Offline
Pages: 1
[ Generated in 0.008 seconds, 8 queries executed - Memory usage: 559.6 KiB (Peak: 569.89 KiB) ]