2013-08-25 49 views
1

有没有办法根据用户在文本框中的输入限制查询返回的记录数?我知道如果记录数量不变,我可以使用最高值,但这个数字会改变。我尝试过:限制根据表单控件返回的记录数

SELECT TOP[Forms![frm_GenerateMailout]![MailoutSize]] 

..但那并没有奏效。

回答

1

这取决于如何,何地,您使用的是SQL语句,但是如果你构建的是一个字符串,你需要正确地串连它:

"SELECT TOP " & Forms!frm_GenerateMailout!MailoutSize & ".. etc." 
1

“有没有办法来限制人数根据用户在文本框中的输入查询返回的记录?“

访问SQL不接受任何类型的参数与SELECT TOP

不幸的是,当你尝试,错误消息(#3141)不认清楚问题:

“SELECT语句包含保留字或拼写错误或缺少变量名,或标点符号是不正确的。”

如果你可以使用VBA构建你的SELECT,你可以通过在Andy所描述的字符串中构建数字来解决这个问题。或者,您可以使用Replace()替代MailoutSize值作为预置SQL语句中的占位符。

于是开始......

strTemplateSql = "SELECT TOP 100 PERCENT tblFoo.*" & vbCrLf & _ 
    "FROM tblFoo;" 

你可以这样做......

strSelect = Replace(strTemplateSql, "100 PERCENT", _ 
    Forms!frm_GenerateMailout!MailoutSize) 

还有其他的可能性了。如果我们的建议都不适合您的情况,请告诉我们您需要在何处以及如何使用查询。

+1

好的,谢谢你让我知道我只能在VBA中做到这一点。我确实将它移到那里,它正在工作。 – TinaB

相关问题