我正在构建一个使用数据库的程序。
当我将数据输入数据库时,它不会保持输入状态。它按包含 ID 号的字段自动按升序排序。问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。
我需要停止访问自动对记录进行排序。有任何想法吗?
与所有关系数据库一样,MS Access 中的行没有固定的顺序。
如果您从表中选择数据而未在查询中指定ORDER BY
子句,则数据库将以随机顺序返回行。
通常顺序看起来很合理(就像在你的情况下,按ID
列升序排序),如果你多次运行相同的查询,顺序可能真的是一样的。
但是不能保证 - 您不能依赖此顺序,您必须通过按ID
列或任何其他列排序来自己指定一个。
我认为您的问题(除了显然不知道在关系数据库中排序是如何工作的)是这样的:
问题是当我以编程方式创建新记录时,它会在另一个表中创建具有相同行号的记录。
如果我的理解正确:
当您需要另一个表中的记录具有相同的值时,只需ID
在插入第一个表后从列中获取值(假设这ID
是主键)并使用该值保存将数据放入第二个表中。
关系数据库本身没有记录顺序的概念。相反,检索到的记录按用于检索它们的查询排序 - 无论是在您的代码中,还是在 Access gui 的幕后。因此,如果您希望它们以特定顺序出现,请编写一个包含 ORDER BY 子句的查询以适应。
Removing any indexing from the table is the easy way. But then you have no index.
I would just create a new field in your table called "PretendRowNumber" and insert the would be row number into it. Then you can at least tie your two tables back to each other.