• ベストアンサー

Access97で「パラメータが少なすぎる」のエラーとは?

Win98SE、VB6.0+SP3からAccess97のmdbを読んで処理するプログラムで、 On Error GoTo Err_Hndr Set db = OpenDatabase(sDatabase) sSQL = "select * from station WHERE compare.[stationNo] = 1;" Set rs = db.OpenRecordset(sSQL, dbOpenSnapshot) このSet rs文のあと、エラールーチンに飛んでしまいます。 エラーコードは3061(パラメータが少なすぎます。1を指定して下さい) です。 このエラーはどういう意味で、どうやって解決すればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nika912
  • ベストアンサー率100% (1/1)
回答No.3

No.2で回答の自己レスです。 大変申し訳ありません。勘違いでした。 私が、解決したのは ・・・WHERE フィールド名 =" & 変数名 & ";" というやり方でした。これならおわかりでしたよね。 今後はよく状況を把握して回答します。

その他の回答 (2)

  • nika912
  • ベストアンサー率100% (1/1)
回答No.2

Accessはパラメータクエリーと認識しているようです。 私もこういう経験ありました。 compare.[stationNo]を変数に入れ、SQL文をちょっと面倒くさいですが ・・・ WHERE" & 変数名 & "=1;" のようにしたところ解決しました。 試してみてください。

prome
質問者

お礼

ありがとうございます。返事が遅れてすみません。

  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

正確にそうだとはいえませんが、(.[stationNo] )の部分で、stationNOはパラメータだと認識していると思います。 やりたいことがはっきりわからないので正確にいえませんが、解消方法は、パラメータに値をセットするか、compareテーブルのstationNOフィールドが1のものという意味であれば、[]をとってください。(でもそれだと、SQL文自体がおかしいような気がしますが・・・)

prome
質問者

お礼

ありがとうございます。返事が遅れてすみません。

関連するQ&A