如何按常用分类框?

时间:2019-04-11 21:00:55

标签: forms ms-access combobox

一个简单的问题,我的数据库中有一个组合框,我希望我最常选择的项目在下次添加记录时首先出现。

3 个答案:

答案 0 :(得分:0)

我建议在表中添加一个Long Integer字段,以构成组合框的行源,并在组合框的AfterUpdate事件上或按照执行的主要操作来增加该字段的值根据您的表格。

然后,按此新字段的降序对组合框中的项目进行排序。

答案 1 :(得分:0)

我假设您的组合框选择了一个保存在表(MainTable)中的属性(PropertyID)的查找值。

您可以获取选择此属性的次数

SELECT PropertyID, COUNT(*) AS SelectedTimes
FROM MainTable
GROUP BY PropertyID

现在通过将此查询用作子查询来获取排序后的查找表:

SELECT L.PropertyID, L.Name
FROM
    LookupTable L
    ( SELECT PropertyID, COUNT(*) AS SelectedTimes
      FROM MainTable
      GROUP BY PropertyID) X
    ON L.PropertyID = X.PropertyID
ORDER BY X.SelectedTimes DESC, L.Name

如果两个条目的计数相同,我也会按名称排序。

答案 2 :(得分:0)

由于使用情况可能会随时间而变化,因此您应记录时间(选择一个项目)。然后,您可以对使用情况进行加权,以便某项的最近使用情况比一年前使用的那些项具有更高的权重。

然后,您可以运行查询以在顶部列出使用最近的项目的用法:

Select Item, Sum(1 / DateDiff("h", [SelectedTime], Now())) As Usage
From ItemUsage
Group By Item
Order By Sum(1 / DateDiff("h", [SelectedTime], Now())) Desc

当然,这种线性加权可能太简单了。您可以将任何数学应用于平方或对数等用法。