To use I/O on a keyed file, I think access has to be "DYNAMIC".
What does your Access clause say in your select statement?
The key on all of the records must be the same, or you can not access it randomly. However if the key is closer to a set of records you can use random to get the first in a series of records and use read next until you find the right one.
For instance if a key was a SSN and a record type and one record had an additional key field, it might be possible to describe an alternate key to include the additional field. Or just build a new file and use that. If you do not like my post feel free to point out your opinion or my errors.