• 締切済み

VB 実行時エラー '3001'

VB6.0(SP5)で開発していて、エラーが発生して困っております。 今まで使っていたプログラムにちょっとバグ改修をして、新しいバージョンのプログラムを配布したら、Win98マシンで何台か、次のエラーが出ました。 「実行時エラー'3001': 間違った種類または許容範囲外の引数を使用しているか、使用している引数が競合しています。」 プログラムは、「ログイン画面を表示し、IDとパスワードを入力し、DBに登録されているID&パスワードだったら実行」という処理をしています。DBはMySQLです。 エラーが出るマシンでは、このログイン画面(VBForm)が出る前に上記エラーを表示して、終了してしまいます。 ログイン画面を表示するまでの処理としては、 ・.iniファイルから各種パラメータを読み込んで変数にセット ・DBへの接続の文字列を作成する ・AdoConnectSetを実行 ・Formの各種プロパティを設定 ・FormのShowを実行 このような感じです。 そしてさらによくわからないのが、上記手順の合間合間に、MsgBox関数で「○○が終わった」などと、進行状況を表示する処理を追加すると、エラーが発生することなく、ログイン画面の表示までたどり着けるのです。 開発機はWin2000マシンですが、実行しているのはWin95,98,2000などいろいろで、上記のエラーが出るのは98マシンです。 (98マシンでちゃんと動作するのもあります) ズバリの解決法、情報へのポインタ、アドバイス、ヒント... を求めております。よろしくお願いいたします。

みんなの回答

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

エラー問題はgoogleとMSで検索してみましょう。 引っかかったのが、これ。 http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B193093 ADOのバージョンの問題?

参考URL:
http://www.google.com/search?q=ADO+error+3001
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

msgbox でデバッグできないなら、ファイルへの出力をお勧めいたします。 msgbox を使用するとフォーカス位置がかわったりします。 msgbox を使用すると、フォームに対して、OSから「アクティブ/非アクティブ」が送られます。(フォームアクティブのイベントじゃないですよ。) そうすることで、既存の動きを極力変えずにダンプを取ることが望ましいかと思います。 ちなみに ・.iniファイルから各種パラメータを読み込んで変数にセット ・DBへの接続の文字列を作成する ・AdoConnectSetを実行 ・Formの各種プロパティを設定 ・FormのShowを実行 だけでは、想像もつきません。まずはコードを見てみないことには。。。

Tues17
質問者

お礼

早速のアドバイスありがとうございます。 手順を書いてみたのは、「何も表示してないのになぁ」「MsgBoxの有無でエラーになったりならなかったりするようなことがあるとも思えないしなぁ」という程度のことが、そうでもないのか?と思ったからです。今まで半年間、問題なく動いていた部分なので、 急にこんなエラーが出てパニックになっています。 DBでSQLを実行した後に、その結果をCintに""をかませて'3001'のエラーが出たことがあって、「まだDBも読みに行っていないのになぁ」と思ったのでした。 MsgBoxを実行すると、やっぱり実行しないときとは動きがだいぶ違うのですね。 明日会社に行ったらまた試してみます。どうもありがとうございました。

関連するQ&A

専門家に質問してみよう