For user_name change the property of inset_allowed and update_allowed to YES and on when_new_form_instance trigger write execute_query(no_validate).
As you made this block as a database block so it will execute properly.
Go to property palette of item user_name:
Querey Allowed: Yes.
No other changes needed.
FRM-40200 raises when you try to write data in a text item when it is not allowed. Mouse navigation by itself shouldn't raise this error. Make sure that items are empty and that there is no trigger assigning values (for example a When-New-Item-instance trigger) when you click on the item.
Also, if you want no dml in this form, you can do several things:
At runtime, when you enter the form, it is in NORMAL mode (look up system.mode property in the online help) and the record is in NEW status (lookup status). If this is a query only form, you shouldn't stay in that mode/status, as it is useless. You can put the form in enter_query mode (if you want to filter data), or execute the query directly and stay in NORMAL mode / QUERY status. This operations can be programmed in the When-New-Form-Instance trigger.
At design time, set the block insert allowed, update allowed, delete allowed properties to NO, at block level!
At runtime: You even can call your form with query_only parameter (but this has more implications you should be aware of).