So the problem is that you don't want to or are not allowed to change the query that was used to create your recordset in the visual basic code?
As you've probably already discovered, you cannot use DMax or DMin on a recordset and you are not allowed to re-sort an existing recordset. So the options that you're left with are:
1) Sort the records by SalesDate when creating the recordset
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Sales.* FROM Sales ORDER BY SalesDate")
Then you'll have to do a rs.MoveFirst (to get min) and rs.MoveLast to get Max
2) Do the Min and Max right in your query like I originally suggested. Then you don't have to use time to do MoveFirst and MoveLast. You'll just reference the MyMin and MyMax like any other field in your recordset.
Set rs = CurrentDb.OpenRecordset("SELECT Sales.* , (SELECT max(SalesDate ) from sales) AS MyMax, (SELECT min(SalesDate ) from sales) AS MyMin
from Sales")
3) Write a loop in your code to go through all records in recordset to find the min and max (least efficient)