LoginSignup
0
1

More than 3 years have passed since last update.

[ADODB、VBA、VB6]「引数が間違った型、許容範囲外、または競合しています。」というメッセージが表示される

Last updated at Posted at 2019-09-03

TL;DR

  • 今時あまり役に立たないかもしれないADODBのエラーに関する情報
  • 「引数が間違った型、許容範囲外、または競合しています。」というメッセージは、直接的な原因でない場合に表示される場合がある。
  • 事例を2つあげる

例1:定義されていない定数を使用した場合

基本的には、vbaの環境で発生する。

例えば、以下のようなコードでエラーとなる

With CreateObject("ADODB.Stream")
        .Type = adTypeBinary '→ここでエラー
End With

VBAでは、adTypeBinaryなどの定数は定義されていないため、自分で定義する必要がある。
定義していない場合は、adTypeBinaryはEmptyの値になり今回のエラーが表示される。

対処

変数を定義する。

また、先頭にOption Explicitを記述すると、未定義の変数をエラーにできる

例2:パラメータクエリで、エラーとなるようなオブジェクトの引数をパラメータに設定した場合

Dim Cn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cmd As ADODB.Command
(中略)
Rs.MoveLast
Rs.MoveNext
Cmd.Parameters("p1").Value = Rs.Fields("v1").Value '→ここでエラー

Rs.Fields("v1").Valueは、本来は、BOFまたはEOFがTrueとなっている旨のエラーが出る。
しかし、これをパラメーターに設定すると、表示されるのは、今回のエラーとなるため、原因の把握がしづらい。

対処

ロジックを見直す。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1