みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
File Maker Pro 11を使用している者です。
レコード検索のスクリプトをLoopで作成する必要があるのですが、途中で止まってしまい、困っています。
長くなりますが、よろしくお願いいたします。
下記のように、複数のテーブルで共通IDを設定・互いにリレーションし、
それぞれのテーブルに必要な情報を上位のテーブルからルックアップできるファイルを作成しています。
【DBテーブル】共通ID・氏名・住所・電話番号
【テーブルA】共通ID・氏名・住所・履歴
【テーブルB】共通ID・氏名・電話番号・出欠
【DBテーブル】―【テーブルA】―【テーブルB】でリレーションされています。
この状態で下記のスクリプトを作動させると、
最後のレコードまできていないのに、スクリプトのLoopが終了してしまいます。
(Loopを外しても作動しない時がありました。)
”スクリプト一時停止”を挿入して調べたところ、
Loopが終了してしまうのは、下記の←※のタイミングでした。
ーーーーーーー
レコード/検索条件/ページへ移動[最初の]
Loop
コピー[選択;テーブルA::共通ID]
レイアウト切り替え[テーブルB]
検索モードに切り替え[]
貼り付け[選択;テーブルB::共通ID] ←※
エラー処理[オン]
検索実行[]
If[Get(対象レコード数)=0]
新規レコード/検索条件
貼り付け[選択;テーブルB::共通ID] ←※
Else
フィールドの再ルックアップ[ダイアログなし;テーブルB::共通ID]
End If
レイアウト切り替え[テーブルA]
レコード/検索条件/ページへ移動[次の;最後まできたら終了]
End Loop
ーーーーーーー
どうも”貼り付け”が上手くいっていないようなのですが、
考えられる原因や、より良い方法を教えていただけると大変助かります。
どうぞよろしくお願いいたします。
Last edited by FM11使用 (2017-08-04 16:17:47)
Offline
コピーや貼付は使ったことないので、わかりませんが
1:コピーを、変数でA共通IDを取得 に変更
2:貼り付けをフィールド設定:値:変数 に変更
でも起こりますか?
Offline
tomato様ありがとうございます!
コピーや貼付は使ったことないので、わかりませんが
1:コピーを、変数でA共通IDを取得 に変更
2:貼り付けをフィールド設定:値:変数 に変更でも起こりますか?
変数は、一度使ってみたきりなので自信がないのですが、
・コピー[選択;テーブルA::共通ID]
⇒変数を設定[$共通ID;値:テーブルA::共通ID]
・貼り付け[選択;テーブルB::共通ID] (2か所)
⇒フィールド設定[テーブルB::共通ID;$共通ID]
に変更してみたところ、
Loopでも問題なくスクリプトが完了しました。
スクリプトが完了するまで1分半ほどかかってしまったのですが、
頻繁に使うスクリプトではないので、良しとしようと思います。
このようなスクリプトをあと2、3個使用する必要があるので、
全てで試してみたいと思います。
もしまた不具合が出てきてしまいましたら、また質問させてください。
Offline
スクリプトのエラーは、そのレイアウト上にそのフィールドが存在していないか、入力禁止になっているからでは。
テーブルA の情報を、他のテーブルへ移動させるルックアップの様な動きが欲しいのでしたら、IDフィールドを照合フィールドとしたインポートが簡単ですし、早いと思います。
また、リレーションを通したレコードの作成を許可しておけば、前もってレコードを作っておく必要は無く、DB テーブルの中でテーブルAの履歴とテーブルBの出欠を入力できる様に、例えばポータルで作っておけば、そこに入力するだけでレコードは自動的に作成されます。
Last edited by Shin (2017-08-05 18:10:13)
Offline
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 507.45 KiB (Peak: 514.06 KiB) ]