在MS Access 2010中,我有以下查询,该查询随机对数据进行排序并将其放入新工作表中。在我添加WHERE之前,它正在工作,但现在我收到一个错误告诉我:
参数太少:预计2。
有人知道如何解决这个问题吗?
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
[Some_Possible_Value_For_The_Field]
来自[My_Sheet]
请注意,这是Access SQL
答案 0 :(得分:4)
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语句外部读取值。因此,为什么我们用双引号关闭语句,添加字段值,然后再次用双引号打开。
请注意,您需要保留字段限定符。在这种情况下,我假设你的第一个字段是一个字符串,它需要单引号限定符,第二个变量是一个整数,不需要限定符。