2016-08-25 22 views
-1

MS Access 2010では、ランダムにデータを注文して新しいシートに配置する次のクエリがあります。私は、WHEREに追加する前に、それが働いていたが、今私は私を伝えるエラーを取得:MS Access SQLのパラメータがあまりにも少ない:予想される2

パラメータが少なすぎます。予想2.

が、私はこの問題を解決できるか誰を知っていますか? [Some_Possible_Value_For_The_Field]がある

sqlQuery = "SELECT [My_Sheet].* " & _ 
      " INTO My_New_Sheet" & _ 
      " FROM [My_Sheet] " & _ 
      " WHERE [Some_Field] = [Some_Possible_Value_For_The_Field] " & _ 
      " ORDER BY Rnd(-(100000*[Some_Other_Field])*Time())" 

Debug.Print sqlQuery 
CurrentDb.Execute sqlQuery 

が、これはアクセスSQL

+1

'[Some_Possible_Value_For_The_Field]'はどこから来ると思いますか?あなたのテーブルに '[Some_Field]'は存在しますか? –

+0

はい、 '[Some_Field]'は存在します。また、[[Some_Possible_Value_For_The_Field] 'は' [My_Sheet] 'から来ると予想されます – Paradox

+2

*' [Some_Possible_Value_For_The_Field] 'は' [My_Sheet] 'から来ると予想されます*:それはどういう意味ですか?そのフィールドはテーブルに存在するかどうか? – sstan

答えて

3
sqlQuery = "SELECT [My_Sheet].* " & _ 
      " INTO My_New_Sheet" & _ 
      " FROM [My_Sheet] " & _ 
      " WHERE [Some_Field] = '" & [Some_Possible_Value_For_The_Field] & "'" & _ 
      " ORDER BY Rnd(-(100000*" & [Some_Other_Field] & ")*Time())" 

Debug.Print sqlQuery 
CurrentDb.Execute sqlQuery 

フォーム変数を使用する場合、値がSQL文の外から読み取る必要があるであることを[My_Sheet]

注意から来ています。したがって、なぜ二重引用符で文を閉じ、フィールド値を追加してから、二重引用符で再度開きます。

フィールド修飾子を使用する必要があることに注意してください。この場合、最初のフィールドは一重引用符修飾子を必要とする文字列であり、二番目の変数は修飾子を必要としない整数であると仮定しました。

関連する問題