2013-12-13 34 views
0

我需要从简单查询中选择特定数量的随机行。该号码以([Formulários]![Survey]![SelectSurveySample])的形式指定。 如果我尝试选择TOP 5,它可以工作,但我想在表单中更改此数字。选择N并在Access中显示N个随机行

SELECT TOP ([Formulários]![Survey]![SelectSurveySample]) * 
FROM [main_table] mt 
WHERE (((mt.CPA_Number)=[Formulários]![Survey]![selectCPA_Survey]) 
AND ((mt.Sample_Household)=False) AND ((mt.Functionality_Survey)=False)) 
ORDER BY rnd(Int(Now*ID)-Now*Id) 

回答

0

有你试图消除括号 ...

SELECT TOP [Formulários]![Survey]![SelectSurveySample] * 
FROM main_table 
WHERE (((main_table.CPA_Number)=[Formulários]![Survey]![selectCPA_Survey]) 
AND ((main_table.Sample_Household)=False) 
AND ((main_table.Functionality_Survey)=False)) 
order by rnd(Int(Now*ID)-Now*Id) 

,因为这可与更改为SELECT TOP 5,和你有一个表单变量[Formulários]![Survey]![selectCPA_Survey]在查询中,我看到的唯一的区别括号

+0

是的我没有括号尝试,并返回相同的错误。像这样的东西“SELECT语句包括一个保留字或参数缺少或没有正确插入或标点符号不正确”(我的访问不是英文,所以我翻译了它)。 – user3088281