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

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

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

You are not logged in.

Announcement

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


#1 2018-02-21 18:14:08

muku
Member

データを削除後、インポートする

Windows7環境で16を使っています。やりたい事は以下になります。

・所定の場所にファイルがあります。例えば、C:\apple.txt
・テーブルのデータを全て削除します。
・所定の場所にあるファイルをインポートします。

このスクリプトはできているのですが、ファイルが存在しない場合は、テーブルのデータを削除したくはありません。
これを行うには、所定の場所にファイルがあるか調べて、無ければスクリプトを終了させればいいのですが、
所定の場所にファイルがあるかどうか、get関数の中を見ても無さそうな気がしますが、どのように解決すればいいでしょうか?

Offline

#2 2018-02-21 18:47:22

qb_dp
Member

Re: データを削除後、インポートする

FileMakerにファイルの有無を確認出来る関数はありません。
以下の方法でファイルの有無を確認出来ます。

https://fm-aid.com/bbs2/viewtopic.php?id=6785
外部のプログラムとの連携無しで、ファイルの有無を確認するには、

オブジェクトフィールドを作成し、
スクリプト:ファイルを挿入 で、以下のようにファイルパスを2行設定します。
オブジェクトフィールドのファイル名を取得し、「error.txt」だった場合、
「aaa.exe」が無いと判断出来ます。
「error.txt」は、スクリプト:ファイルを挿入 の前にテンポラリフォルダにエクスポートしておくのが用でしょう。


ファイルを挿入[obj ;
filewin:/D:/aaa.exe
filewin:/D:/!TEMP/error.txt
]

その他の方法は、以下を参照:
Event送信でファイルの存在を確認したい: https://fm-aid.com/bbs2/viewtopic.php?id=6785

Offline

#3 2018-02-22 09:44:22

チポ
Member

Re: データを削除後、インポートする

順番を変えて、
  インポート
  対象外のレコードを削除
と考えたらいかがでしょう。


インポート前に対象レコードを0にしておいて、
  エラー処理 オン
  インポート

これで、
インポートのソースファイルがないと
対象レコードは0のままですから、対象外を表示

対象レコードがあれば、
対象外を表示、対象レコードの削除

これでいいのでは。。


この作業を日常的に行うのなら、
フラグメンテーションが置きやすいですから、
定期的に最適化保存をした方がいいでしょうね。

Offline

#4 2018-02-22 11:43:01

muku
Member

Re: データを削除後、インポートする

皆様、ありがとうございました。今回はお教え頂いたリンクの中にあった、

mshta "javascript:
clipboardData.clearData('TEXT');
var fpath='<<ファイルパス>>';
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(fpath)){
clipboardData.setData('TEXT','存在します');
} else {
clipboardData.setData('TEXT','否存在です');
};
fso=null;
close();"

の方法を仕様して解決しました。ありがとうございます。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 10 queries executed - Memory usage: 554.96 KiB (Peak: 565.34 KiB) ]