ADODBで「パラメーターが少なすぎます。xを指定してください。」が表示される原因。 ADODB.ParameterとADODB.CommandのParameterで更新する時に出る。 .NET系のプログラマーは、データベース更新系のCommandと同じノリでやってしまうのだけれども、VBAの場合、些細なミスで頻繁に「パラメーターが少なすぎます。xを指定してください。」みたいなエラーが表示される。 主な原因は.... SQLの誤り バインド変数の数がSQLで指定しているパラメーターより実際に相違している。 Parameterに追加する際のデータ型が相違している。 エラーの内容と推測しにくいのが、3番目のParameterに追加する際のデータ型が相違しているの分だ。 エラー内容的には、SQLのバインド変数のパラメーター名が誤っているとか、パラメーターの数がズレてしまったとかを内容的には探すのだけれども、どれも問題が無い場合、3番目のデータ型が要注意だ。 しかもやっかいな事に、デバッグで2回実行すると何故か成功する等、振る舞いが不安定なので、余計原因を抑えるのに混乱する。 例えば、ACCESSのデータ型は、大きい数値、数値みたいなデータ型があって、とりあえず、何でもまかなえそうな[BigInt]を指定したりしていると、このエラーが表示される。 Set sql_prm = sql_cmd.CreateParameter("項目名", adBigInt, adParamInput) sql_cmd.Parameters.Append sql_prm アクセスのデータ型で数値は、Numericになるので要注意。 Set sql_prm = sql_cmd.CreateParameter("項目名", adNumeric , adParamInput) sql_cmd.Parameters.Append sql_prm このエラーに遭遇している人で解決が上手くいっていない人は、大抵の場合、エラー内容...