アプリ版:「スタンプのみでお礼する」機能のリリースについて

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を差し替えたという状態を認識できないためにエラーが発生するものだと思っています。 (違うかもしれません)
対処としては、このエラーが発生した場合は、処理を中断せずに継続するという方法もあるのですが、
このエラーを発生させないようにしたいのですが、対処の仕方が全く分かりません。

もし何かわかる方がいらっしゃいましたら、ご教授御願い致します。

A 回答 (4件)

どのような処理をしているか分からないので、自信は無いのですが、、、



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→・・・
ということですかね?
    • good
    • 0

こんにちは



まず、FDが未フォーマットや書込み禁止になっているってことは
ないですよね(^^;;)

一度、1枚目のロジックを全部コメントにして
2枚目のオープンしてるところからプログラムが
実行するようにしてテストしてみてください。

もしかして、ループの中でぐるぐる回してるのでしたら
このテストは意味無いですね~

どうでしょうか?
    • good
    • 0

エラー自体の表示をしないようにしたいのか、


エラーの原因を追求したいのか、
そこが少し分かりません。申し訳ないです。
後者と仮定します。

分からない上で書くので、的外れかもしれませんが、
1枚目のFDと2枚目のFDに書き込むファイルは、
別ファイルですよね?どうなんでしょう・・・
別ファイルなら、1枚目から2枚目に移るときに、
ファイルのCloseはされてますよね?

同一ファイルという事は無いと思うのですが、
そうだとしたら、1回しかOpenしてないとすると、
エラーになるかもしれません。
もし、1枚目も2枚目も何も入ってないディスクだと
した場合、Open時にファイルは作成されます。
1枚目を抜く前にCloseして、2枚目に書き込むタイミング
でOpenし直さないといけないと思います。

これも、考えにくいのですが、1枚目と2枚目の、
保存するディレクトリが違うとか・・・
Openでファイルはできますが、フォルダは自動で
できないと思います。

うーん。分かりにくい文で申し訳ないです。
多分、解決にはならないかと思いますが・・・

もし、これで解決できないのでしたら、
「VB初心者友の会」の方へ質問されたほうが、
ここより専門的に聞けると思います。

お役に立てず申し訳ないです。

参考URL:http://www2j.biglobe.ne.jp/~little-g/vbtomo.html

この回答への補足

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

>エラー自体の表示をしないようにしたいのか、
>エラーの原因を追求したいのか、
>そこが少し分かりません。申し訳ないです。
>後者と仮定します。
→申し訳ございません。どうしたいのかを詳しく書き忘れた当方のミスです。
 (1)エラー自体を発生させないようにしたいのと、
 (2)エラーの本当の原因が知りたいのです。

>分からない上で書くので、的外れかもしれませんが、
>1枚目のFDと2枚目のFDに書き込むファイルは、
>別ファイルですよね?どうなんでしょう・・・
→そうです。別ファイルです。

>別ファイルなら、1枚目から2枚目に移るときに、
>ファイルのCloseはされてますよね?
→はい、クローズされています。

>これも、考えにくいのですが、1枚目と2枚目の、
>保存するディレクトリが違うとか・・・
>Openでファイルはできますが、フォルダは自動で
>できないと思います。
→フォルダは使用せずにFDドライブの直下にテキストで保存しています。(例:番号1のデータは、A:\1.txt,番号2のデータは、A:\2.txt)

参考URLどうもありがとうございます。
調べ直します。

今回はご丁寧にどうもありがとうございました。
また何かありましたらよろしくお願い致します。

補足日時:2002/11/12 13:25
    • good
    • 0

on error goto を 使ってください。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!