- 締切済み
VB実行時エラー75:「パス名が無効です」について
VBについて分からない事があり、投稿しました。 VBでDB(オラクル)のテーブルのデータをFD内のテキストファイルに 書き込むプログラムを作成しています。ちなみにFDは複数枚使用します。 (例:番号1のデータは1枚目のFD、番号2のデータは2枚目のFD・・・) このプログラムをボタンのクリック時イベントで書くのですが、 まずFDがマシンに挿入されているかを調べる為、 Open 「FD内のテキストファイルのパス」 For Input As #FileNo という風に行っており、FDが挿入されていない場合のみ、処理を中断し、 その他のエラーでは処理を中断しないようにしています。 そして、FDが挿入されていると、1枚目のFDにデータを書き込む処理をして、書き込んだ後にFDを取り出し、 次に2枚目のFDを挿入し、FDにデータを書く・・・ というような処理を行っているのですが、 2 枚目以降でFDを入れ替えて処理を継続すると、実行時エラー75「パス名が無効です」が発生します。 原因として考えられるのは、 マシン側がFDを差し替えたという状態を認識できないためにエラーが発生するものだと思っています。 (違うかもしれません) 対処としては、このエラーが発生した場合は、処理を中断せずに継続するという方法もあるのですが、 このエラーを発生させないようにしたいのですが、対処の仕方が全く分かりません。 もし何かわかる方がいらっしゃいましたら、ご教授御願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- -boya-
- ベストアンサー率35% (176/494)
どのような処理をしているか分からないので、自信は無いのですが、、、 1.FileNoを取得する 2.ファイルをOpenする 3.書き込む 4.ファイルをCloseする 5.FDを差し替える この順番がおかしいのでは。どのようなルーチンを組まれているのですか? 1→2→3→4→1→2→3→4→・・・→4→5→1→2→3→4→1→2→3→・・・ ということですかね?
- ats8181oyaji
- ベストアンサー率38% (94/244)
こんにちは まず、FDが未フォーマットや書込み禁止になっているってことは ないですよね(^^;;) 一度、1枚目のロジックを全部コメントにして 2枚目のオープンしてるところからプログラムが 実行するようにしてテストしてみてください。 もしかして、ループの中でぐるぐる回してるのでしたら このテストは意味無いですね~ どうでしょうか?
- LittleSea
- ベストアンサー率50% (2/4)
エラー自体の表示をしないようにしたいのか、 エラーの原因を追求したいのか、 そこが少し分かりません。申し訳ないです。 後者と仮定します。 分からない上で書くので、的外れかもしれませんが、 1枚目のFDと2枚目のFDに書き込むファイルは、 別ファイルですよね?どうなんでしょう・・・ 別ファイルなら、1枚目から2枚目に移るときに、 ファイルのCloseはされてますよね? 同一ファイルという事は無いと思うのですが、 そうだとしたら、1回しかOpenしてないとすると、 エラーになるかもしれません。 もし、1枚目も2枚目も何も入ってないディスクだと した場合、Open時にファイルは作成されます。 1枚目を抜く前にCloseして、2枚目に書き込むタイミング でOpenし直さないといけないと思います。 これも、考えにくいのですが、1枚目と2枚目の、 保存するディレクトリが違うとか・・・ Openでファイルはできますが、フォルダは自動で できないと思います。 うーん。分かりにくい文で申し訳ないです。 多分、解決にはならないかと思いますが・・・ もし、これで解決できないのでしたら、 「VB初心者友の会」の方へ質問されたほうが、 ここより専門的に聞けると思います。 お役に立てず申し訳ないです。
- taknt
- ベストアンサー率19% (1556/7783)
on error goto を 使ってください。
補足
回答ありがとうございます。 >エラー自体の表示をしないようにしたいのか、 >エラーの原因を追求したいのか、 >そこが少し分かりません。申し訳ないです。 >後者と仮定します。 →申し訳ございません。どうしたいのかを詳しく書き忘れた当方のミスです。 (1)エラー自体を発生させないようにしたいのと、 (2)エラーの本当の原因が知りたいのです。 >分からない上で書くので、的外れかもしれませんが、 >1枚目のFDと2枚目のFDに書き込むファイルは、 >別ファイルですよね?どうなんでしょう・・・ →そうです。別ファイルです。 >別ファイルなら、1枚目から2枚目に移るときに、 >ファイルのCloseはされてますよね? →はい、クローズされています。 >これも、考えにくいのですが、1枚目と2枚目の、 >保存するディレクトリが違うとか・・・ >Openでファイルはできますが、フォルダは自動で >できないと思います。 →フォルダは使用せずにFDドライブの直下にテキストで保存しています。(例:番号1のデータは、A:\1.txt,番号2のデータは、A:\2.txt) 参考URLどうもありがとうございます。 調べ直します。 今回はご丁寧にどうもありがとうございました。 また何かありましたらよろしくお願い致します。