访问(VBA)访问记录集中的最后一条记录

时间:2014-12-10 22:53:37

标签: database vba access-vba store recordset

尝试从“发票”表中的最新记录中获取RecieptNumber(自动编号),以将值存储在变量invoiceNum(整数)中。

Dim rstInvoices As Recordset

Set cdCurrentDatabase = CurrentDb
Set rstInvoices = cdCurrentDatabase.OpenRecordset("SELECT LAST ([RecieptNumber]) FROM Invoices;")

invoiceNum = rstInvoices("[RecieptNumber]").Value

昨天开始进行VBA编程,感谢我能够理解的任何帮助。

2 个答案:

答案 0 :(得分:2)

你想要做的事情如下:

SELECT TOP 1 RecieptNumber FROM Invoices ORDER BY RecieptNumber DESC

这将对它们进行排序,以便最后一条记录在列表中排在第一位,然后它将获取第一条记录。当然,假设RecieptNumber是按数字顺序创建的。

它让我烦恼,所以我会添加它 - 它应该是ReceiptNumber,而不是RecieptNumber ......

答案 1 :(得分:0)

rstInvoices的字符串参数必须引用通过执行Select语句实际返回的字段。但查询不返回字段RecieptNumber,而是返回没有指定名称的Last(RecieptNumber)。因此,您首先要使用AS子句为该聚合列命名:

SELECT LAST(RecieptNumber) AS LastNumber ...

现在您可以在VBA中引用该字段:

invoiceNum = rstInvoices("[LastNumber]").Value