初心者のFileMaker pro Q&A (旧掲示板)

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

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2013-10-11 11:53:03

maron
Guest

膨大な条件を簡単に検索したい

Windows7 FMP11

3000件近くあるレコードからレコード番号(新規作成をすると日付と作成順に自動で番号が振られる計算フィールド)を検索したいのですが、検索したいレコード番号が150件近くあり、エクセルに一覧で記載されています。
毎回1件1件新規検索条件で150件を入力するのが手間なので、簡単に検索したいのですが何かいい検索方法はないでしょうか?
アドバイス頂けると幸いです。
よろしくお願い致します。

#2 2013-10-11 11:59:41

チポ
Member

Re: 膨大な条件を簡単に検索したい

別テーブルを作ってそこへエクセルから1件1レコードでインポート。

そのフィールドと、レコード番号をリレーションしておいて、
関連レコードへ移動・対象レコードの照合

とすれば、検索と同じ結果です。

Offline

#3 2013-10-11 12:12:33

traveler
Guest

Re: 膨大な条件を簡単に検索したい

別テーブルは1レコードにして、エクセルでコピーして
FMに貼り付けて関連レコード移動した方が手軽かも。

#4 2013-10-11 12:14:45

maron
Guest

Re: 膨大な条件を簡単に検索したい

チポ様

ご回答ありがとうございます。
新しくテーブルとフィールド(テキスト)をつくり、レコード番号にリレーションを貼って関連レコードへ移動のスクリプトを組んでみたのですが、リレーションシップが無効のため実行できませんとエラーになってしまいました。
何が原因でしょうか…
初心者で大変申し訳ないのですが教えていただけないでしょうか?

#5 2013-10-11 12:34:49

maron
Guest

Re: 膨大な条件を簡単に検索したい

traveler様

ご回答ありがとうございます。
1レコードのフィールドをグローバルフィールドにしてそこに全件いうことでしょうか?
こちらもためしてみたものの、上記と同様のエラーが出てしまいました…
リレーションの貼り方になにか注意すべき点があるのでしょうか?

#6 2013-10-11 12:38:10

Listist
Guest

Re: 膨大な条件を簡単に検索したい

エクセルでコピーしてFMに貼り付けて関連レコード移動

この場合貼り付け先はグローバルフィールドでいいので、必ずしも別テーブルの必要はないですね。
「計算フィールド」が非保存(みたいですが)だと関連レコード移動の方法は使えません。

#7 2013-10-11 12:41:47

traveler
Guest

Re: 膨大な条件を簡単に検索したい

新しいテーブルと元テーブルのレコード番号フィールドを=で結ぶだけですが
レコード番号フィールドが非保存なのでしょうね。

#8 2013-10-11 12:44:06

concat
Guest

Re: 膨大な条件を簡単に検索したい

非保存だったら、
貼り付け用のテキストフィールドはグローバルでなくして、別テーブルにする
元のテーブルに計算フィールドを追加 Count(別テーブル::貼り付け)>0
この計算フィールドを1で検索
でいいかな。

#9 2013-10-11 12:49:50

traveler
Guest

Re: 膨大な条件を簡単に検索したい

条件リストを1行ずつ検索するのをLoopするとか
レコード番号を索引の持てる別フィールドに全置換するとか
になるのかな?

#10 2013-10-11 13:04:41

maron
Guest

Re: 膨大な条件を簡単に検索したい

Listist様

ご回答ありがとうございます。
仰られるとおり計算フィールドが非保存でした。


concat様

ご回答ありがとうございます。
教えていただいた方法で検索することができました。
索引設定が出来ないので時間はかかりますが、手間はかなりかからなくなりました。

traveler様

度々のご回答ありがとうございます。
Loopやレコードの全置換ですか。
まだまだFMの知識不足なので勉強してみようと思います。



皆様本当に短時間でたくさんのご回答いただきありがとうございます。
助かりました。
またわからないことが出てきたら質問させて下さい。
ありがとうございました。

#11 2013-10-11 13:08:51

チポ
Member

Re: 膨大な条件を簡単に検索したい

ああ、

> レコード番号(新規作成をすると日付と作成順に自動で番号が振られる計算フィールド)
これですから、索引非保存になっちゃうんでしょう。

このフィールドを普通に検索しても、
非保存ではそれなりに時間がかかるのでは。


また、別の問題ですが、
計算フィールドだと、途中のレコードを削除すると、
それ以降の同日付のレコードすべて番号が変わっちゃいますよ。


この問題も含めて、
レコード番号は、入力値の自動化・計算式
での入力がお勧めですね。

Offline

#12 2013-10-11 13:12:49

うーぱー
Guest

Re: 膨大な条件を簡単に検索したい

Loopの例(条件をExcelでコピーして実行)

検索モードに切り替え[]
貼り付け[レコード番号]
変数を設定[$条件;レコード番号]
Loop
ExitLoopIf[$条件=""]
フィールド設定[レコード番号;GetValue($条件;1)]
新規レコード
変数を設定[$条件;RightValues($条件;ValueCount($条件)-1)]
EndLoop
検索実行

#13 2013-10-11 17:53:46

maron
Guest

Re: 膨大な条件を簡単に検索したい

チポ様

まさにその通りで誤って作成したレコードが削除できず困っていました。
入力値の自動化・計算式で作り直したところ、関連レコードへ移動ができました。
根本的な原因を教えていただきありがとうございます。

うーぱー様

わざわざ式まで教えていただきありがとうございます。
ループとは全レコード検索を繰り返すスクリプトなのでしょうか?
今回は関連レコードへ移動の方法で出来たので使用しませんでしたが、次回必要な時に活用させていただこうと思います。

Registered users online in this topic: 0, guests: 1
[Bot] claudebot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 9 queries executed - Memory usage: 525.66 KiB (Peak: 546.2 KiB) ]