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

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

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

You are not logged in.

Announcement

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


#1 2013-12-12 19:29:20

ダイ
Member

Event送信について

環境はwin7のFM12です。

Eventを送信で

Set objFS = CreateObject(""Scripting.FileSystemObject""): 
If objFS.FolderExists(""C:\Users\owner\Desktop\test"") then: 
Else: 
objFS.CreateFolder(""C:\Users\owner\Desktop\test""): 
End If

としてフォルダを作成していましたが、突然
『オートメーションの操作中にファイル名またはクラス名を見つけられませんでした。』
というエラーが表示され正常に動かなくなりました。

その内容を書いたfloder.vbsというファイルを作成し、実行したところそちらは正常に動いたのですが。
おそらくWindowsのUpdateが関係していると思うのですが、何か解決方法はありますでしょうか?

Offline

#2 2013-12-13 06:58:15

wader
Member

Re: Event送信について

ファイル「Set」が見つからなかったため~

になりますが?

vbsファイルを開くようにすればいいのでは。フィールド内容のエクスポートで自動生成もできます。

Offline

#3 2013-12-13 10:00:05

ダイ
Member

Re: Event送信について

お返事有り難うございます。

ファイルを指定したevent送信でも同様のエラーになるんです。
VBS自体は動いていますが、ファイルメーカーのevent送信ではエラーになるといった感じです。

Offline

#4 2013-12-13 13:42:23

tim
Guest

Re: Event送信について

event送信でなく、エクスポート・自動的に開くです。

レジストリが壊れてる感じなので、システムの復元か、FMの再インストールかな。

ディレクトリの作成自体は、Event送信で単に
cmd /c md C:\Users\owner\Desktop\test
でもいいでしょう。存在するか確認する必要はありません。
現状では、多分これでも同じエラーになるでしょうけど

これは「cmd.exeかcmd.comかcmd.batを実行」するので、waderさんが書いてるように
最初の投稿の記述では「set.exe」などを探してしまいますから、元々実行できるのが変な感じですけど。
特殊な環境設定をしてたのかな。

#5 2013-12-13 15:34:26

ダイ
Member

Re: Event送信について

お返事有り難うございます。

内容を省略してしまっていました。
実際は、

MSHTA vbscript:Close(Execute(
"Set objFS = CreateObject(""Scripting.FileSystemObject""): 
If objFS.FolderExists(""C:\Users\owner\Desktop\test"") then: 
Else: 
objFS.CreateFolder(""C:\Users\owner\Desktop\test""): 
End If"
))

となるように計算式でevent送信していました。

FMの再インストールは試してみたのですが修復できませんでした。

エクスポートで自動的に開くという方法を取るには
VBSを一行ごとにレコードに入力してそれを出力するしかありませんか?

Offline

#6 2013-12-13 16:07:59

tim
Guest

Re: Event送信について

その内容だと(名前を変えれば)コピペで動きますね。
計算式ということは、もう1段quoteされてるわけですよね。計算結果を確認した方がよさそう。

フィールド内容のエクスポートだから、グローバルフィールドでもいいでしょう。
変数を設定[$path;"file:" & Get ( テンポラリパス ) & Get ( UUID ) & ".vbs"]
フィールド設定[グローバル;vbsの内容]
フィールド内容のエクスポート[グル―バル;$path;自動的に開く]

#7 2013-12-13 17:48:38

ダイ
Member

Re: Event送信について

お返事有り難うございます。

フィールドのエクスポート、レコードのエクスポートのどちらでも試してみましたがやはり同様のエラーが出ました。
前からそのスクリプトを実行して正常に動いており、現在も正常に実行できるPCもあるので、計算式自体は間違っていないと思うのですが

まず$$VBS変数を

Let (
[
ファイルパス変数 = 初期設定::フォルダパス & "\\" & 初期設定::フォルダ名 ;
詳細パス変数 = "\出力データ" ;
$$フォルダ作成パス変数 = ファイルパス変数 & 詳細パス変数
] ;
"Set objFS = CreateObject(\"\"Scripting.FileSystemObject\"\"):
If objFS.FolderExists(\"\"" & $$フォルダ作成パス変数 & "\"\") then:
Else:
objFS.CreateFolder(\"\"" & $$フォルダ作成パス変数 & "\"\"):
End If"
)

と設定し、そのあとevent送信の計算で
"MSHTA vbscript:Close(Execute(\"" & $$VBS変数 & "\"" & "))"
としました。

Offline

#8 2013-12-16 09:19:06

tim
Guest

Re: Event送信について

vbsファイルを実行だと普通はwscript.exeかcscript.exeなので、その計算式とは実行してるファイルが違います。
mshta.exeの問題かもしれないので、その式の計算結果をコマンドプロンプトで実行できるか確認してください。

>フィールドのエクスポート、レコードのエクスポートのどちらでも試してみましたがやはり同様のエラーが出ました。
この場合にはevent送信は使ってないですよね?
これは最初に書いてる状況(vbsファイルは実行できる)と矛盾してるので、何か変。
エクスポートした.vbsファイルの内容が直接実行できるファイルと一致してますか?(フィールド内容~の場合は文字コードがUTF-16になるので微妙ですが)

#9 2013-12-16 13:46:06

ダイ
Member

Re: Event送信について

お返事有り難うございます。

>vbsファイルを実行だと普通はwscript.exeかcscript.exeなので、その計算式とは実行してるファイルが違います。
拡張子が『.vbs』ではマズイということでしょうか?

>その式の計算結果をコマンドプロンプトで実行できるか確認してください。
コマンドプロンプトでは正常に実行できました。

>>フィールドのエクスポート、レコードのエクスポートのどちらでも試してみましたがやはり同様のエラーが出ました。
>この場合にはevent送信は使ってないですよね?
この場合はevent送信は使用していませんが同様のエラーが出ます。

>エクスポートした.vbsファイルの内容が直接実行できるファイルと一致してますか?
フィールド内容・レコード内容のエクスポートとも直接実行できるファイルと一致していますし、
エクスポートされたファイルを直接ダブルクリックすると正常に動きます。

Offline

#10 2013-12-16 14:09:12

tim
Guest

Re: Event送信について

FMがファイルを開くのに「オートメーション」を使ってるんですかねえ?
エクスポートするファイルの拡張子を.txtにするとどうなりますか。
他には、PDFやExcel保存などで「自動的に開く」でも同じ現象が起こるんでしょうね。

#11 2013-12-16 16:24:56

ダイ
Member

Re: Event送信について

拡張子を.txtにすると問題なく自動的に開きますね。エクセルも開きました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 570.83 KiB (Peak: 587.37 KiB) ]