2010-03-25 63 views

回答

2

我认为这与主键有关。 假设你的PK是基于文本的,那么MS Access将按字母顺序排序。 如果您想要控制订单,请使用自动编号作为PK。

3

您不应该担心订单数据存储在表中。订单是一个表示层问题,当你想要一个特定的订单时,指定一个排序顺序(SQL中的ORDER BY)。

如果您在应用程序中使用表格数据表并希望获得所需的排序顺序,那么您应该使用定义了排序顺序的表格(无论是在表单属性中还是在基础记录源中)或者查询数据表中表数据表的地方。

Access还允许您在表格数据表中设置排序顺序并将其与表格一起保存,但这不可取。表格数据表很方便,但除了对数据的快速和粗糙的看法外,您不应该依赖它们。

+0

那么对于Access数据库我同意你的看法,你不必担心数据的顺序。 但是,当涉及到真正的DBMS时,订单可能很重要 - >集群索引。 – gsharp 2010-03-26 06:54:48

+0

您可能想要阅读Jet/ACE的使用聚簇索引的PK。尽管如此,PK是唯一可以聚集的索引。关于“真正的DMBS”的评论是错误的,如在关系理论中,表格没有订单。在某些边缘情况下,您可能会发现,了解数据表中的物理存储顺序可以帮助您提高性能,但从理论角度来看,它不应该是这样。 – 2010-03-26 18:14:15

1

在数据库中,如果您需要按照一定的顺序被返回的记录,你需要在你的读取码以指定一个“ORDER BY子句:

SELECT Field1, Field2 FROM Table ORDER BY Field1 

别的没有工作的打算转发的保证。

+0

感谢您的答案,但我通过C#.Net使用OLE DB连接,我正在将数据(已按排序顺序)导出到ms访问,其中排序顺序自动设置,并且我的初始排序数据不存在这样。 但是,我找到了一种解决方法,首先使用一些临时名称将记录插入到MS Access中,然后使用select将查询按顺序依次排列到需要排序到所需表的字段中。这给了一些缓解,但它是一个双重工作与性能打击。截至目前没有其他人去找我。 – KSH 2010-03-26 20:47:16

+0

如果出现这种情况,您可以通过在表格上粘贴自动编号列,然后从显示该视图的查询中读取,这可能会更简单。 – eftpotrm 2010-03-27 20:51:11

相关问题