有没有办法根据用户在文本框中的输入限制查询返回的记录数?我知道如果记录数量不变,我可以使用最高值,但这个数字会改变。我尝试过:限制根据表单控件返回的记录数
SELECT TOP[Forms![frm_GenerateMailout]![MailoutSize]]
..但那并没有奏效。
有没有办法根据用户在文本框中的输入限制查询返回的记录数?我知道如果记录数量不变,我可以使用最高值,但这个数字会改变。我尝试过:限制根据表单控件返回的记录数
SELECT TOP[Forms![frm_GenerateMailout]![MailoutSize]]
..但那并没有奏效。
这取决于如何,何地,您使用的是SQL语句,但是如果你构建的是一个字符串,你需要正确地串连它:
"SELECT TOP " & Forms!frm_GenerateMailout!MailoutSize & ".. etc."
“有没有办法来限制人数根据用户在文本框中的输入查询返回的记录?“
访问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)
还有其他的可能性了。如果我们的建议都不适合您的情况,请告诉我们您需要在何处以及如何使用查询。
好的,谢谢你让我知道我只能在VBA中做到这一点。我确实将它移到那里,它正在工作。 – TinaB