初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2013-08-26 11:08:21

jj_akichan
メンバー

[解決] ExecuteSQLによる動的値一覧について

新しい掲示板を作っていただきましてありがとうございます。
今後もよろしくお願いいたします。

環境:Win7 FMPro12Adv

テーブル名:Staff
フィールド名:Name
フィールド名:Switch

テーブル名:Schedule
フィールド名:Name
フィールド名:VL_Name(ExecuteSQLの計算フィールド)

ExecuteSQLを使用してStaff::Switchがonの場合にはSchedule::NameにStaff::Nameが表示される動的値一覧を作ってみようと思い以下の計算式を作成してみました。

ExecuteSQL ( "SELECT Name FROM Staff WHERE Switch = ?" ; "" ; "" ; "on" )
この場合、Staff::SwitchをonするとStaff::Nameは値一覧に表示されました。
しかし、Staff::Switchをブランクにしても値一覧に表示されてしまいます。
まだExecuteSQLがよく分かっていないので以下の式にしてみました。
ExecuteSQL ( "SELECT Name FROM Staff WHERE Switch = 'on'" ; "" ; "" )
挙動が同じだけで意味はありませんでした。この2式の違いもよく分かっていませんが・・・

索引の問題かと思い、Schedule::VL_Nameの索引をフィールド定義にてクリアすると期待通り値一覧に表示されなくなりました。

この挙動からするとExecuteSQLを動的値一覧的に使用することには無理があるのでしょうか?

編集者 jj_akichan (2013-08-26 11:10:07)

オフライン

#2 2013-08-26 13:24:30

SQLExecuter
ゲストユーザー

Re: [解決] ExecuteSQLによる動的値一覧について

計算結果を保存しないと値一覧に使えないと思いますが、そうするとSwitchを変更しても計算結果が変わらないので動的になりません。
Staffテーブルのグローバルフィールドにして、Evaluate(ExecuteSQL(~~);Switch)とか。
しかしレコードの追加(はいいのかな?)・削除時には反映されそうにない...

#3 2013-08-26 14:16:57

jj_akichan
メンバー

Re: [解決] ExecuteSQLによる動的値一覧について

ゲスト様
やはり動的には使えないですよね。
う~ん、もう少し考えてみます。

SQLExecuter さんの発言:

計算結果を保存しないと値一覧に使えないと思いますが、そうするとSwitchを変更しても計算結果が変わらないので動的になりません。
Staffテーブルのグローバルフィールドにして、Evaluate(ExecuteSQL(~~);Switch)とか。
しかしレコードの追加(はいいのかな?)・削除時には反映されそうにない...

オフライン

#4 2013-08-26 15:23:53

SQLExecuter
ゲストユーザー

Re: [解決] ExecuteSQLによる動的値一覧について

この例だと、Staffテーブルのフィールドにして
Case(Swith="on";Name)
でいいので、ExecuteSQLの必要性がないですし。

#5 2013-08-26 16:51:52

jj_akichan
メンバー

Re: [解決] ExecuteSQLによる動的値一覧について

ゲスト様

すいません、ExecuteSQL使ってみたかったので。

SQLExecuter さんの発言:

この例だと、Staffテーブルのフィールドにして
Case(Swith="on";Name)
でいいので、ExecuteSQLの必要性がないですし。

オフライン

#6 2013-08-26 17:10:09

SQLExecuter
ゲストユーザー

Re: [解決] ExecuteSQLによる動的値一覧について

元々はScheduleの側のフィールド値によって一覧が変わるのが「動的」と言ってるので、
この例で言うとSchedule側にonとかoffとか入れるフィールドがあって、それに従って変化させればいいんでしょうけど
「値一覧を表示する前」というトリガが無いので、そのタイミングでExecuteSQLを計算させる方法がないと思います。

#7 2013-08-26 17:31:48

jj_akichan
メンバー

Re: [解決] ExecuteSQLによる動的値一覧について

SQLExecuter様

Scheduleテーブル側のフィールド値によって値一覧を変えるわけではないので動的という言葉を使うか迷いました。
やはりStaffテーブルのフィールド値の変更によって値一覧の内容を制御するのは難しそうですね。
みなさまありがとうございました。

オフライン

#8 2013-08-26 17:56:15

チポ
メンバー

Re: [解決] ExecuteSQLによる動的値一覧について

FM12使っていないので、
ExecuteSQL関数
分かりませんが。。

Scheduleテーブルでグローバルフィールドを作り、onと入力。

これと、Switchとでリレーションして、その動的値一覧でいいでしょう。

オフライン

#9 2013-08-26 18:33:35

jj_akichan
メンバー

Re: [解決] ExecuteSQLによる動的値一覧について

チポ様
ありがとうございます。
ご指南いただきました方法で作ることにいたしました。

チポ さんの発言:

FM12使っていないので、
ExecuteSQL関数
分かりませんが。。

Scheduleテーブルでグローバルフィールドを作り、onと入力。

これと、Switchとでリレーションして、その動的値一覧でいいでしょう。

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer