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

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

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

You are not logged in.

Announcement

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


#1 2015-07-17 14:06:53

yh
Guest

リスト形式で1つの行がアクティブになっているのを解除したい

よろしくお願いいたします。

表題のとおり、リスト形式で1つの行がアクティブになっているのを解除したいです。

常に1つの行がアクティブになっている状態を解除して、
どのレコードもつかんでいないような状態にしたいのですが、
どのようにしたらよろしいかわかりません。

全てのレコードに対して実現したいスクリプトがあるのですが、
1つのレコードをつかんでしまっているせいで上手くいかない事態になっております。

どなたかお教えいただけますでしょうか。
よろしくお願いいたします。

#2 2015-07-17 14:10:56

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

補足です。

つかんでしまっているというか、選択されているような状態になっております。

#3 2015-07-17 14:22:45

旅人
Member

Re: リスト形式で1つの行がアクティブになっているのを解除したい

必ず掴みますよ。
掴まれていてもできるはず。
全レコードを対象外にしたら掴みたくても掴めないけど。

Offline

#4 2015-07-17 14:32:49

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

旅人 様

ご回答いただき、ありがとうございます。
確かにスクリプトは動作できているのですが、
次のようなエラーメッセージが表示されてしまいます。
「1レコードは、他のユーザによって使用されているか、
使用したアクセス権では変更できません。」
ファイルは一人で使用しているため、他のユーザが使用しているのは考えられません。
(他のユーザが私のことを指していると思っています)
アクセス権は完全アクセス権なので、アクセス権がないということではないと思われます。

色々な質問サイトを見ているのですが、
このような問題に関する質問への回答がなかなか見当たりませんでした。

どうぞよろしくお願いいたします。

#5 2015-07-17 14:51:00

旅人
Member

Re: リスト形式で1つの行がアクティブになっているのを解除したい

ファイル(関連ファイルも)を一旦閉じて、再度開いてからすぐにそのスクリプトを実行しても
同じですか?

Last edited by 旅人 (2015-07-17 14:52:48)

Offline

#6 2015-07-17 15:04:41

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

旅人 様

ファイルを閉じ、再度開き、すぐにスクリプトを実行してもエラーメッセージが表示されます。
(ファイルは1つしかないので、関連ファイルはありません)

スクリプトの内容は、全レコードを表示し、フィールド内容の全置換を行っています。
スクリプトに問題があるのでしょうか?

#7 2015-07-17 15:11:43

scripter
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

ファイルを修復してみたらどうかな。

Loop
Exit Loop If[Get ( レコードのオープン状態 )]
レコードへ移動[次の]
End Loop

というスクリプトを実行すると、問題のレコードがわかるかも

#8 2015-07-17 15:33:43

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

scripter 様

ご回答ありがとうございます。

ファイルは修復してみましたが、特に問題はありませんでした。

また、教えていただいたスクリプトを実行してみたところ、
砂時計のマークとescが表示されずっと止まったままです。
一旦Escを押して解除したのですが、かなり時間がかかるのでしょうか?
レコード数は292件です。

#9 2015-07-17 15:43:25

scripter
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

292件ならすぐに終わるはずですが、先頭レコードで実行しないとだめなのと、
レコードへ移動[次の;最後で終了]
にしないと最後のレコードで無限ループになるので、
つまりGet関数では検出できなかったんですね。

ループしないでも
Get ( 開いているレコード数 )
でロックされてる行数はわかるんだった。

#10 2015-07-17 16:01:31

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

scripter 様

ありがとうございます。
先頭レコードで「最後まできたら終了」で実行したところ、
ただ最後のレコードに移動されて終わりました。
これは特に問題はないということでしょうか・・・

Get ( 開いているレコード数 )は0でした。
ロックされている行はなさそうです。

そのほかに考えられる原因はあるのでしょうか。

#11 2015-07-17 16:11:30

チポ
Member

Re: リスト形式で1つの行がアクティブになっているのを解除したい

1レコードだけが何らかの破損が有るのでしょうかね。

それを想定するのなら、
まずデータの保護・バックアップですね。


破損レコードを特定するには、、

半分位ずつ対象レコードとして、全置換。

エラーになった対象レコードをまた半分、
これを繰り返してエラーのでるレコードを特定できないかな。

特定できたら、そのレコードを作り直す。

Offline

#12 2015-07-17 17:02:09

yh
Guest

Re: リスト形式で1つの行がアクティブになっているのを解除したい

チポ 様

ご回答ありがとうございます。
ひとつずつレコードを選択して、全置換のスクリプトを実行してみると、
どのレコードでもエラーが起きることがわかりました。

フィールド内容の全置換をしたいということですが、
対象のフィールドに、ある入力がある場合、全て空白にしたいということです。
ですので新たなスクリプトを考えました。

対象レコードの絞り込み[記憶する]
Loop
フィールド設定[ファイル名::フィールド名;""]
レコード/検索条件/ページへ移動[次の;最後まできたら終了]
End Loop
スクリプト実行[レコード全表示]

以上のやりかたでエラーが起きずやりたいことが実現できました。
根本的な解決にはなっていないのですが、ひとまず解決とさせていただきます。

ご回答くださったみなさま、本当にありがとうございました。
また何かありましたら、どうぞよろしくお願いいたします。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 525.86 KiB (Peak: 546.4 KiB) ]