我正在尝试设计一个多用途的组织按钮。
按钮下方是一个包含数据的子表单(名为ProjectQSubF)。虽然我们只关注一组数据,但我们说这个数据名为ProjectComplete,是一个布尔Y / N(复选框)字段。
我想设计一个按钮,当您单击它时,如果选中该检查,它会对所有这些字段进行排序(是)。如果再次单击该按钮,则会按未选中的相反状态对其进行排序(否)。如果你一直点击它就会在这两个州之间来回走动。
我该怎么做?
另外,我如何用日期做这件事;基于接近现在和最远的两个州?
答案 0 :(得分:0)
创建一行(或复选框或其他)。设置为visible = false;
使用标记值(/ checked state)来保持常量说出True或False; 将对象命名为isSortAscending或类似;
在按钮的点击事件中:
isSortAscending.Tag = (not cbool(isSortAscending.Tag)) 'switch state to the opposite
dim ss as string: ss = ProjectQSubF.Form.RecordSource 'get the existing data query
ss = left(ss, instr(ss, "ORDER BY") - 1) 'chop off the existing sort logic
if isSortAscending.Tag = True then
ProjectQSubF.Form.RecordSource = ss & "ORDER BY yourColumnName"
else
ProjectQSubF.Form.RecordSource = ss & "ORDER BY yourColumnName DESC"
end if
与日期类似,DESC意味着最新的第一个,ASC(或者只是缺少“DESC” - 如上面的代码所示)意味着最早的。
无论您使用的是日期还是真/假列,您可能都不希望将排序限制为此列,因为您正在使用的列的任何一个值都可能存在多行,并且这个列可能看起来是未排序的,所以我建议在上面的语句后面附加“,nameofMainTextColumn”。
希望这有帮助