A couple of things.
1) You can't be sure what REPROCESS is set to when you go into this code. Use SET("REPROCESS") to capture the current value, then set it accordingly at the end,
2) FINALLY will always run so you can take out the SET REPROCESS inside the CATCH and move the one at the end inside the FINALLY.
>This tested ok.....
>
>
>TRY
> SET REPROCESS TO 1
> REPLACE status WITH 2 IN ss_io FOR status = 5
>CATCH
> SET REPROCESS TO AUTOMATIC
> MESSAGEBOX("Cannot delete the records at this time..... another user has has one of the records open at this time.... try again later",0+16,"Cannot Delete Records")
>FINALLY
>ENDTRY
>
>SET REPROCESS TO AUTOMATIC
>
>
>The REPLACE statement attempts to lock all the affected records ( status = 5 ) and lock them.
>
>It can't, since I have one of the affected records locked in another instance of VFP.
>
>So I drop down to CATCH, then finally to the end.
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer