2016-08-25 65 views
-1

在MS Access 2010中,我有以下查询随机排列数据并将其放入新工作表中。我在WHERE加入之前,这是工作,但现在我得到一个错误,告诉我:MS Access SQL太少参数:预计2

过几个参数:预期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]

注意,这是访问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语句的外部读取。因此,为什么我们用双引号关闭语句,添加字段值,然后再次用双引号打开。

请注意,您需要保留字段限定符。在这种情况下,我认为你的第一个字段是一个字符串,它需要单引号限定符,第二个变量作为一个不需要限定符的整数。

相关问题