みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Shinさん、himadaneeさん
いろいろありがとうございました。
見直してみます。
Shinさん
ありがとうございます。FM19は他のシステムとの関係上、使用できませんでした。
また、先程ご教授いただいた方法もわかるのですが、テーブルAで行う処理の都合上、ちょと混乱してしまい難しそうです。
一番初めに教えていただいた
ファイルの構造によりますが、
> 1、各テーブルは固有のIDでリレーションシップを貼っています。
から考えると、そのID のみを取り込めばいいのでは。それぞれのテーブルでデータが独自に編集されていくのでしたら、ルックアップでデータを自動入力させればいいでしょうね。
ID は。移動させるデータを対象にしておき、IDを一覧にする集計フィールドでテキスト列として取り込みます。そのIDをLoopで取り込み先で設定していけばいいでしょう。
または、元テーブルで、リレーション先のテーブルのIDをLoopで設定していってもいいでしょう。(大量ですと時間がかかりますが、30レコードくらいでしたら一瞬でしょう)ただ、それぞれでデータが編集されないのでしたら、そのデータを移動させる意味がありませんね。IDのみを移動させればいい話のはずです。
の方法でもう少しわかりやすい方法はないでしょうか。(ルックアップを勉強するのに良いところはありますか?)
また、その際は、
https://qiita.com/tyuma/items/6ea12e0e182ce776c506
のようなことも注意が必要した上で、できれば良いのでしょうか。
質問ばかりで申し訳ございません。
Shinさん
ご指摘ありがとうございます。
ファイルメーカーの場合、データを触った途端に全部書き換えられてしまうという特性があると思っていて、
初心者にありがちと思われるのでしょうが、誤ってレコードをいじってしまうのが怖いため、
あるステップを踏むまでは保存用のデータをいじれないようにするためにこのような形にしていました。
これを防ぐ方法が思いついていません。初心者あるあるなのでしょうか?
himadaneeさん
ありがとうございます。
サーバ上でスクリプト実行というのをよくわかっていませんでした。
オブジェクトも同時に操作したかったので、インポート用のいままでうまく行っていたスクリプトを
サーバ上で適応してみた(サーバ上で実行するスクリプトの中身に既存のスクリプトを実行させるよう
なコマンドを作成した。)のですが、サーバにあるデータはクライアント側のデータ修正が
反映されていないタイミングにあるのか、挙動がおかしかったです。
スクリプトを入れ子状態にしたのが更にまずかったのでしょうか。
Shinさん
ありがとうございます。
テーブルBはテーブルAのバックアップ 兼 テーブルAからのポータルを利用した参照先(以下の表では社員IDで繋がっている)となっています。
実は固有IDはテーブルBでは厳密な意味の固有ではなく、リビジョンがある場合に重複するあることがあります。
テーブルA
固有ID, 社員ID, データ_1, データ_2, ...
211, 社員ID_1, DETA211_1_1, DETA211_2_1, ...
212, 社員ID_2, DETA212_1_1, DETA212_2_1, ...
テーブルB
固有ID, データ_1, データ_2, ...
111, 社員ID_1, DETA111_1_1, DETA111_2_1, ...
112, 社員ID_2, DETA112_1_1, DETA112_2_1, ...
112, 社員ID_2, DETA112_1_2, DETA112_2_2, ...
このような形になっていますが、作業が完了したテーブルAのデータを
テーブルBに移動させて、他の人が簡単に触れないようになっています。
いままではテーブルAをインポート/吐き出したレコードは削除することで、
テーブルBにすべてのレコードを移動していました。
どうしてもこのようにデータを移動するような形でのルックアップの作り方が想像できず、
(固有のIDのみ取り込む という操作がわからない..)
なにかサンプルなどあるところがあれば教えていただけないでしょうか。
ありがとうございます。そういった方法があるのですね。
クライアント側にファイルを残せないので、他の方法はないでしょうか(使用する人間に作業させるとミスが発生することもあるため)。
個人的には、クラリスの公式にある以下の方法をとりたいのですが、よく分からなくて困っています。
https://support.claris.com/s/article/ある … anguage=ja
方法 2:リレーションシップ
データベース間のリレーションシップを設定し、ルックアップフィールドを作成するという方法でフィールドに保存されている情報を他のデータベースに移動することができます。
ルックアップを実行すると、他のテーブルのデータが現在のテーブルのフィールドにコピーされます。コピー後のデータは、現在のテーブルのデータとなります(コピー元のテーブルにもデータが残ります)。
ルックアップを行う際のテーブル間の関係を設定するには、現在のテーブルの照合フィールドと関連レーブルの照合フィールドとの間のリレーションシップを作成する必要があります。リレーションシップを設定したら、ルックアップを定義して、関連テーブルのデータを現在のテーブルのフィールドにコピーします(FileMaker オンラインヘルプの「ルックアップの定義」を参照してください)。
現在のテーブルの照合フィールドに値を入力したり、照合フィールドの値を変更した場合、FileMaker Pro は設定されているリレーションシップを使って関連テーブルを参照し、照合フィールドに同じ値が入力されている最初のレコードを検索します。次に、ルックアップ元に設定されているフィールドの値をルックアップ先のフィールドにコピーします。値は、そのフィールドに保存されます。
ルックアップ先のフィールドにコピーされた値に対しては、他の値と同様に編集、置換、削除などの処理を行うことができます(ルックアップで取得した値は、現在のテーブルの値となるという点に注意してください)。さらに、現在のテーブルのデータを関連テーブルのデータに一致するように更新することもできます。
お世話になっております。
FileMakerのver.18にてWebDirectの環境を使用して、
テーブルAからテーブルBに複数のレコードを移動したいのですが、
良い方法はありますでしょうか。
いままでは各端末にファイルメーカーをインストールしていたので、
レコードのインポートをスクリプトで行い実現していましたが、
WebDirectのみを用いて運用することとなりました。
ルックアップを利用すると良いという記事もあるのですが
想像がつきません。お知恵をお借りできれば幸いです。
1、各テーブルは固有のIDでリレーションシップを貼っています。
2、移動したいデータの項目は20個ほどあります。
3、同時に移動したいレコードは30程です。
よろしくおねがいいたします。
Pages: 1
[ Generated in 0.008 seconds, 6 queries executed - Memory usage: 592.47 KiB (Peak: 613.75 KiB) ]