dポイントプレゼントキャンペーン実施中!

現在、VB6とMSAccessを連動させたプログラムを作成し、
お客様のPCにて使っていただいているのですが、

VB6からAccessのテーブルに、
テキストファイルから取り込んだデータを書き込む際、
エラーコード3027と3343が起こったり、起こらなかったりとしています。

調べたところ、
3027は「データベースまたはオブジェクトは読み取り専用なので、更新できません。」
3343は「データベースの形式 <ファイル名> を認識できません。」

となっていたのですが、そのエラーは初めて書き込むときではなく、
テキストファイルからデータを読み込み、
何行か読み込んだ際に初めて出てきます。

テキストファイルは、外部ソフトからそのプログラムを使用して
取り込んでおり、取り込んですぐにデータベースに書き込んでいるのですが、
その際にエラーが起こることが多いようです。

ボタンにそのデータを取り込むだけの処理を入れ、
処理を走らせた場合はそのエラーは発生しません。


取り込み後、下記処理で書き込み処理へ向かっています。
ボタンに設置した処理は、下記処理で呼び出している
AddUriageです。

Dim fso As New FileSystemObject

If fso.FileExists(HtRecv & "Uriage.txt") Then
    ErrMes = "Uriage"
    Call AddUriage
End If

AddUriageだけ走らせればきちんと動くので、
AddUriageの処理は合っていると思います。

お客様のPCはWin XPです。

こうではないか、という曖昧な意見でもかまいません。
ご意見お待ちしております。

A 回答 (1件)

読み込みが早いので更新処理が間に合わないのだと思います。


こういう場合は本来は更新処理が正常に終わったかの返り値を読み取ってから次の処理に移るのが大きなシステムの書き方です。
それが難しいなら読み取りを遅くなってもTimer処理などで保留の処理を入れます。
つまり一秒待つとか2秒待つなどを意識的に入れるのです。
たぶん同時処理がいっぱいになって処理しきれないのでエラーが出ているのでしょう。
    • good
    • 0

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