Darrell Burns
dhb at flsi.com
Thu Jun 2 20:40:45 CDT 2011
William, I left out a key ingredient on my last post in response to this question. After you do a seek, you have to test for a NoMatch. For example... Rst.index = "ixStrDate" Rst.seek "=", "20110602" If NOT rst.nomatch then Do While not rst.eof If rst!strDate > "20110602" then Exit do End if <your code> Rst.movenext Loop End If Sorry bout dat. Darrell -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of William Benson (VBACreations.Com) Sent: Thursday, June 02, 2011 5:12 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Most efficient means to retrieve most recent record Hello, In an Access table where I import and append very similar data routinely, I stamp every record with the same ImportTime at time of import. I am wondering the most efficient means of getting at the latest record matching certain criteria? I see three ways. METHOD 1 (1) Set a recordset = the entire table ordered descending, with no WHERE clause (2) use Rst.FindFirst and put the criteria here as arguments METHOD 2 (1) Use an ORDER BY (desc) clause, select all the records where those fields have the values I specify (2) Use the first record in the recordset. METHOD 3 (1) Select the max date where those fields have the values I specify (2) Select "the" record where those fields have the values I specify AND Date = Date found from (1) .... to me this seems unlikely to be fastest, but who knows. -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com