有没有办法根据文本框中的用户输入限制查询中返回的记录数?我知道如果记录数量不变,我可以使用最高值,但这个数字会改变。我试过了:
SELECT TOP[Forms![frm_GenerateMailout]![MailoutSize]]
..但那没用。
答案 0 :(得分:1)
这取决于您使用SQL语句的方式和位置,但如果您将其构造为字符串,则需要正确连接它:
"SELECT TOP " & Forms!frm_GenerateMailout!MailoutSize & ".. etc."
答案 1 :(得分:1)
“有没有办法根据文本框中的用户输入限制查询中返回的记录数?”
Access 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)
还有其他可能性。如果我们的建议都不适合您的情况,请告诉我们您需要在何处以及如何使用该查询。