- ベストアンサー
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を指定して下さい) です。 このエラーはどういう意味で、どうやって解決すればいいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2で回答の自己レスです。 大変申し訳ありません。勘違いでした。 私が、解決したのは ・・・WHERE フィールド名 =" & 変数名 & ";" というやり方でした。これならおわかりでしたよね。 今後はよく状況を把握して回答します。
その他の回答 (2)
- nika912
- ベストアンサー率100% (1/1)
Accessはパラメータクエリーと認識しているようです。 私もこういう経験ありました。 compare.[stationNo]を変数に入れ、SQL文をちょっと面倒くさいですが ・・・ WHERE" & 変数名 & "=1;" のようにしたところ解決しました。 試してみてください。
- msystem
- ベストアンサー率42% (79/186)
正確にそうだとはいえませんが、(.[stationNo] )の部分で、stationNOはパラメータだと認識していると思います。 やりたいことがはっきりわからないので正確にいえませんが、解消方法は、パラメータに値をセットするか、compareテーブルのstationNOフィールドが1のものという意味であれば、[]をとってください。(でもそれだと、SQL文自体がおかしいような気がしますが・・・)
お礼
ありがとうございます。返事が遅れてすみません。
お礼
ありがとうございます。返事が遅れてすみません。