【问题标题】:I want to go to last record of access database without using ID我想在不使用 ID 的情况下转到访问数据库的最后一条记录
【发布时间】:2012-11-29 00:32:04
【问题描述】:

我一直在努力寻找这个。我正在使用 access 2010,我在几个表中有一些数据,我想从每个表中选择最后一行并将它们添加到新数据库中。所有数据库都有随机 ID,所以我不能使用按 ID 排序功能。

【问题讨论】:

  • 您的问题不清楚。您是想在 Access 本身中执行此操作,还是使用 SQL/VBA?如果是第一个,你的问题应该继续SuperUser,因为它是一个通用的软件问题。如果它实际上是一个 SQL 或 VBA 问题,请编辑您的问题,以包含您迄今为止尝试过但对您不起作用的内容。另外,如果存在“随机 ID”值,您如何确定哪个是“最后一条记录”?
  • 数据库不(也不应该)保证记录的任何“顺序”,除非它们在表中明确指出。您已经说过 ID 是随机的,因此如果不指定哪个字段确定顺序,“最后一行”是没有意义的。如果“最后一行”是指“最新行”,那么您需要添加一个时间戳列并在每次添加记录时填充它。

标签: sql ms-access vba ms-access-2010


【解决方案1】:

如果表很小,你可以将它传递给前端的数据表并使用类似的东西,

lastRow = datatable.rows(datatable.rows.count-1)

否则,您可以在数据库中添加一个“created_datetime”字段,该字段保存插入的日期时间并检索其最大日期,因为您的 ID 字段具有随机数...

【讨论】:

    【解决方案2】:

    打开 vba (alt + F11)

    dim rst as recordset
    set rst = docmd.runsql (sql statement here) e.g. (select * from tablename)
    rst.movelast
    

    你已经完成了你在 vba 中的最后一条记录

    您可以使用插入语句将其添加到新的表数据库中。

    【讨论】:

    • 张贴者明确表示无法对数据进行排序,那么您的SELECT 将使用什么来决定哪个是“最后一条记录”?如果不使用ORDER BY 子句,SQL 不保证任何顺序。
    猜你喜欢
    • 2023-04-08
    • 2017-09-10
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多