Excel或Access

我想要做的是在Access中创build一个表格,并且不得不一次一次地剪切和粘贴,然后按等级上升,这个问题就是如果我有一个这样的列表

Cpl第四名
MSGG 8级,但是Cpl级别更高
第一名是第十一名等。
是的,第一个LT通常会先走,但是如何使它显示出来
1st Lt
MSGT
下士

还有其他的等级 有没有一个模块,我可以使用这个或将有人不得不编程的东西在电子表格或访问的视觉基础知识。 这是数据库格式,但如果我必须导出它,并在excell中做,我也可以做到这一点。

通常的做法是创build一个排名表和sorting顺序,你可以使用这个sorting你的表,你的子表单的logging源将在以下几行:

SELECT Rank.Sort, MainTable.Rank FROM MainTable LEFT JOIN Rank ON MainTable.Rank=Rank.Rank 

您需要包含一个数字,说明如何对表进行sorting。

 Rank Sort 1st Lt 1 MSgt 2 Cpl 3 

一个关系数据库,如Access,只有一个订单,如果你给它一个。

你可能有一个很多人的桌子,在我的例子中,我叫这个MainTable,那么你应该有一个查找表,让我们称之为Rank,它应该看起来像上面的表格。 这意味着在主表中不需要两个字段来表示排名是什么以及应该如何sorting,另外,查找表意味着每个条目都是相同的,所以您不必以, 例如:

1st Lt
首先
1st Lieut

您可能想阅读Fundamentals of Relational Database Design

换句话说,你需要在排名表的字段“Sort_order”字段上做ORDER BY语句,而不是排名本身的名字。

我还build议以10为增量步进这个字段,所以如果新的等级进来,你可以把它放在另外两个之间,而不必更新其他logging(ahhhh带我回到我的旧VIC20编程date的行号)

在您的等级表中添加一个名为“Sort_order”的新字段。 查询将看起来像这样

SELECT tblPeople.Name,tblRanks.Rank_name,tblRanks.Sort_order FROM tblPeople INNER JOIN tblRanks ON tblPeople.Rank_ID = tblRanks.Rank_ID ORDER BY tblRanks.Sort_order DESC;

表tblPeople包含人的详细信息,如名称等,表tblRanks包含行列的名称,以及一个字段告诉数据库什么样的顺序sorting他们在军士是高于私人