访问(VBA)访问记录集中的最后一条记录
问题描述:
尝试从表'发票'中的最近记录获取RecieptNumber(autonumber)以将值存储在变量invoiceNum(integer)中。访问(VBA)访问记录集中的最后一条记录
Dim rstInvoices As Recordset
Set cdCurrentDatabase = CurrentDb
Set rstInvoices = cdCurrentDatabase.OpenRecordset("SELECT LAST ([RecieptNumber]) FROM Invoices;")
invoiceNum = rstInvoices("[RecieptNumber]").Value
昨天开始VBA编程,非常感谢任何帮助,我将能够理解。
答
的字符串参数rstInvoices
有提及,实际上是通过执行SELECT语句返回现场。但是查询不返回字段RecieptNumber
,但是Last(RecieptNumber)
没有指定名称。因此,你首先要使用AS
条款,得到聚合列名:
SELECT LAST(RecieptNumber) AS LastNumber ...
现在,您可以参考该字段中VBA:
invoiceNum = rstInvoices("[LastNumber]").Value
答
你想要做的事,如:
SELECT TOP 1 RecieptNumber FROM Invoices ORDER BY RecieptNumber DESC
这将责令其所以最后一个记录是第一个在列表中,然后它需要的第一个记录。当然,假定RecieptNumber按数字顺序创建。
而且它的窃听我,所以我会补充这一点 - 它应该是ReceiptNumber,不RecieptNumber ...
您的要求:'SELECT LAST([RecieptNumber])如rNum FROM Invoices'您的vba:'InvoicesinvoiceNum = rstInvoices.Fields(“rNum”)。Value'。另请参阅:http://msdn.microsoft.com/fr-fr/library/office/ff197799(v=office.15).aspx – scraaappy 2014-12-10 22:57:49
[如何获取表单的最后一条记录ID?]( http://*.com/questions/13587638/how-to-get-the-last-record-id-of-a-form) – LondonRob 2014-12-10 23:02:28
如果你在一个多用户系统上,任何涉及Last,Top等的东西,是非常危险的,你需要一个CurrentDb和@@ Identity的实例,参见http://*.com/questions/1628267/autonumber-value-of-last-inserted-row-ms-access-vba – Fionnuala 2014-12-11 01:28:33