我想要做的是在Access中创建一个表单并且不得不一次又一次地剪切和粘贴使其按等级提升,这个问题是如果我有一个等级,则较低等级的字母更接近于像这样的列表
Cpl 4th rank
MSgt排名第8,但是比Cpl更高
第一个是像第11排名等。
是的,1号通常会先行,但如何使它显示为像
第一Lt
MSGT
CPL
还有其他排名。是否有一个模块,我可以用于此或将有一个人必须在视觉基础上为电子表格或访问编程。 它是以数据库格式,但如果我必须将其导出并在excell中执行,我也可以这样做。
答案 0 :(得分:2)
通常的做法是拥有一个排名表和排名排序顺序,您可以使用它来对表进行排序,子表单的记录源将在以下行中:
SELECT Rank.Sort, MainTable.Rank FROM MainTable
LEFT JOIN Rank ON MainTable.Rank=Rank.Rank
您需要包含一个数字,说明如何对表格进行排序。
Rank Sort
1st Lt 1
MSgt 2
Cpl 3
关系数据库(例如Access)只有在给出一个订单时才会有订单。
你可能有一个有很多人的桌子,我在我的例子中调用了这个MainTable,然后你应该有一个查找表,我们称之为Rank,它应该看起来像上面所示的表格。这意味着您不需要主表中的两个字段来说明排名是什么以及应该如何排序,此外,查找表意味着每个条目都相同,因此您最终不会,例如:
1st Lt
第一个Lt
第一个Lieut
答案 1 :(得分:0)
换句话说,您需要在排名表中的“Sort_order”字段中输入ORDER BY语句,而不是排名本身的名称。
我还建议以10为增量踩这个字段,所以如果有新的等级,你可以把它放在其他2个之间,而不必更新其他记录(啊哈,带我回到旧的VIC20编程日,用行号)
答案 2 :(得分:0)
在您的排名表中添加一个名为“Sort_order”的新字段。查询看起来像这样
SELECT tblPeople.Name,tblRanks.Rank_name,tblRanks.Sort_order 来自tblPeople INNER JOIN tblRanks ON tblPeople.Rank_ID = tblRanks.Rank_ID ORDER BY tblRanks.Sort_order DESC;
表tblPeople包含名称等人的详细信息,表tblRanks包含排名的名称以及一个字段,告诉数据库对它们进行排序的顺序,以便警长高于私人