【发布时间】:2017-01-30 16:43:30
【问题描述】:
如果我有一个包含 3 列 A、b 和 c 的列表框,请说 lstABC。 并且有 3 个排序按钮,分别是 btnSortA、btnSortB、btnSortC。 有没有办法在按钮上使用 on_click 事件,允许用户在不每次更改 lstABC.rowsource 的情况下对 lstABC 进行排序?
我试图实现以下目标:
Private sub btnSortA_Click()
lstABC.Orderby = "ColumnA ASC"
me.lstABC.OrderByOn = True
End Sub
当然,我可以构建 SQL 字符串并设置/重新查询 lstABC.rowsource = string(对于每个按钮),但我正在寻找一些简单而高效的东西,不会使事情变得过于复杂。谢谢
【问题讨论】:
-
也许如果有办法改变 SQL 中的排序顺序以在 IIF(某些条件)上排序是真的......并将其构建到原始行源中
-
这看起来像
SELECT A,B,C FROM TableName IIf(chk_A OR chk_B OR chk_C, IIf(chk_A," ORDER BY A;", IIf(chk_B, " ORDER BY B;", " ORDER BY C;"), ";")但在这种情况下它会使用复选框而不是按钮 -
这看起来很有希望,并且更符合我的想法,现在如果我可以让它工作
-
不要忘记在您的复选框的
onClick事件中调用列表框上的.Requery。
标签: sql sorting ms-access listbox vba