Excel或Access
我想做的是在Access中创建一个表单,而不必一次又一次地剪切和粘贴,让它按等级上升,问题是,如果我有这样一个列表,较低等级的字母会更接近1 Cpl第4级 MSgt排名第8,但它的排名高于Cpl 第1名,第11名等。。 是的,第一个通常是第一个,但是怎样才能让它像这样出现呢 第一Lt MSgt Cpl 还有其他的级别。是否有一个模块,我可以使用它,或者有人必须在visual Basic中为电子表格或访问编程。Excel或Access,excel,ms-access,Excel,Ms Access,我想做的是在Access中创建一个表单,而不必一次又一次地剪切和粘贴,让它按等级上升,问题是,如果我有这样一个列表,较低等级的字母会更接近1 Cpl第4级 MSgt排名第8,但它的排名高于Cpl 第1名,第11名等。。 是的,第一个通常是第一个,但是怎样才能让它像这样出现呢 第一Lt MSgt Cpl 还有其他的级别。是否有一个模块,我可以使用它,或者有人必须在visual Basic中为电子表格或访问编程。 它是数据库格式的,但如果我必须导出它并用excell执行,我也可以这样做。通常的方法是
它是数据库格式的,但如果我必须导出它并用excell执行,我也可以这样做。通常的方法是创建一个列组表和列组排序顺序,您可以使用它对表进行排序,子窗体的记录源将位于以下行:
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,它应该看起来像上面所示的表。这意味着您不需要在主表中使用两个字段来说明秩是什么以及它应该如何排序,此外,查找表意味着每个条目都是相同的,因此您不会以以下内容结束,例如:
第一Lt
第一中尉
第一中尉
您可能需要阅读换句话说,您需要按照排名表中“排序顺序”字段上的语句进行排序,而不是按照排名本身的名称进行排序
我还建议以10为增量步进该字段,这样,如果新排名出现,您可以将其放在其他两条记录之间,而无需更新其他记录啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。这个查询看起来像这样 选择tblPeople.Name、tblRanks.Rank\u Name、tblRanks.Sort\u order 从tblPeople内部加入tblPeople.Rank_ID=tblRanks.Rank_ID上的tblRanks 按tblRanks.Sort_ORDER DESC排序
表TBLPEOPE包含人员的详细信息,如姓名等,表tblRanks包含军衔的名称以及一个字段,告诉数据库按什么顺序对其进行排序,以便中士高于私人您能以更清晰的方式重新表述您的问题吗?你想归档什么?你的例子不清楚…你能更清楚地理解这一点吗我很困惑,我做了一个名为rank的表,然后我按我想要的顺序排列,然后我对此感到困惑。因此,如果我的ID为Rank 1 1st Lt 2 GySgt 3 SSgt,我选择的Rank.sort在哪里?这是一篇旧文章,即Access 2.0,一些访问特定的详细信息已过时,例如,自Jet 4.0 Access2000以来,引擎已将ON DELETE设置为空引用操作。老掉牙但很好,不过:很好,“关系”的意思实际上是“关系”的意思!在我注意到的Access的任何版本的UI中都没有实现ON DELETE SET NULL这一Jet 4功能。不过,我不认为它应该存在,就像你需要它一样,你可以通过一个联接表来实现它。@David W.Fenton:我不认为它应该存在——我认为不应该存在可为null的列,但显然你或我不能选择这些东西;我对这一切都不熟悉,有人能告诉我为什么我的这篇文章被否决了吗?我应该把它作为评论吗?