0

我有一个带有附加到查询的子表单的数据库,并且该查询中有 15 列。ProjectName、CustomerName、ProjectDueDate、EngineerDueDate、ProjectComplete、EngineerComplete 等字段。

我想做的是弄清楚如何通过单击操作按钮使其自动组织这些数据。操作按钮会显示“按完成列出”,这将确保项目完成的所有字段都选中为是留在底部,并从那里按截止日期(ProjectDueDate 和 EngineerDueDate)组织它们,距离现在更近,它会在列表中越高。

我该怎么做呢?

我在 Windows 7 上安装了 Access 2013。

查询名称为 SearchQ,按钮名称为 ListCompleteBtn,三个字段分别称为 ProjectDueDate、EngineerDueDate 和 ProjectComplete。

项目完成>ProjectDueDate>EngineerDueDate。

因此,这里的示例列表如下:

ProjectName | ProjectDueDate | ProjectComplete | EngineerDueDate |
------------------------------------------------------------------
Test1       | 25/10/2013     | [y] (check mark)|24/10/2013       |
------------------------------------------------------------------
Test2       | 30/10/2013     | [n] (blank box) |26/10/2013       |
------------------------------------------------------------------
Test3       | 30/10/2013     | [n]             |25/10/2013       |
------------------------------------------------------------------
Test4       | 25/10/2013     | [y]             |25/10/2013       |
------------------------------------------------------------------

当您单击“按完成列出”按钮时,将被格式化为:

ProjectName | ProjectDueDate | ProjectComplete | EngineerDueDate |
------------------------------------------------------------------
Test3       | 30/10/2013     | [n]             |25/10/2013       |  
------------------------------------------------------------------
Test2       | 30/10/2013     | [n]             |26/10/2013       |
------------------------------------------------------------------
Test1       | 25/10/2013     | [y]             |24/10/2013       |
------------------------------------------------------------------
Test4       | 25/10/2013     | [y]             |25/10/2013       |
------------------------------------------------------------------
4

1 回答 1

0

这是一个非常基本的 SQL 问题,因此您可能需要考虑购买(或借用)一本关于 Access 和/或 SQL 介绍的书。您正在寻找的是 SQL 字符串的 ORDER BY 子句。您必须使用按钮的 On_Click 事件设置子表单的 RecordSource。就像是:

Private Sub ListCompleteBtn_Click()

Forms![MyForm].[MySubform].Form.RecordSource = "Select * from MyQuery ORDER BY ProjectComplete, ProjectDueDate, EngineeringDueDate ASC"
Forms![MyForm].[MySubform].Form.Refresh

End Sub

显然,[MyForm] 是您的主表单的名称(将其放入其中时去掉括号),而 [MySubform] 是您的子表单的名称(使用与上述相同的替换)。在适当的地方编辑 SQL 语句的其余部分。

如果要更改排序顺序,请将“ASC”(升序的缩写)更改为“DESC”(降序的缩写)

于 2013-10-25T13:27:25.667 回答