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