You said you don't have a DBGrid (or do you??) so you could just work with SQL statements to get the correct record.
I am using DBGrid and it works well for displaying several records. The user can navigate through the table using arrows keys or by pressing some coded buttons. The current record is displayed separately. It all works rather well. I use SQLQuery.Locate to do the searching. The SQLQuery.Last is a red herring and really has a very limited use for this app and will be dropped.
Is Locate nothing more than read: a record, check for match, if matched end otherwise keeping reading and comparing on the client side or does this happen on the server side?
You guys have a lot of patience and I really appreciate the help and insight.