【发布时间】:2016-11-15 08:09:30
【问题描述】:
我相信我有一个非常简单的问题,这将帮助我完成我的项目。我通常不使用 Access,但我被要求帮助某人,所以我在这里。
我的问题:我有一个名为“Start”的 Form1,其中有一个名为“Kat1”的 TextBox1。 我也有一个 SQL 查询:
SELECT TOP 3 tbl.Example FROM TABLE TBL
我想要实现的是让用户在“Kat1”中写入一些数字,以便查询返回这么多的顶部行。
我希望有一种不使用 VBA 的方法,因为我的查询相当复杂,有更多的文本框,更多的子查询选择顶行等。
我尝试输入SELECT TOP [Start]![Kat1]!Value 或类似名称。我的语法可能有问题,或者这一切都错了,还有另一种方法。
提前感谢您的帮助。
编辑: 对于未来的读者;)这就是我用 VBA 解决它的方法:
Sub Query_Change()
SQLstring = "SELECT TOP KAT1 col1 FROM TBL UNION SELECT TOP KAT2 col1 FROM TBL etc..."`
CurrentDb.QueryDefs("MyQuery").SQL = SQLstring
For i = 1 To 4
SQLstring = Replace(SQLstring, "KAT" & i, Forms!Start!("Kat" & i).Value)
Next i
CurrentDb.QueryDefs("MyQuery").SQL = SQLstring
End Sub
代码将在用户将值放入文本框后运行。
【问题讨论】: