You can always specify *LIBL/Filename when you use RUNQRY.
A Query/400 query isn’t built over a *LIBL file. It is always built over a specific file in a specific library.
When you specify *LIBL during query creation, what you are doing is telling Query/400 to find the first file in the current library list that matches the file name. That becomes the file that is used to build the query. The “*LIBL” is replaced with an actual library name at that time.
The correct method of specifying *LIBL is at run-time on the RUNQRY command. The RUNQRY command can specify *LIBL if the library list should be searched at run-time.
The QRYFILE() parameter default has no value for file-name, so CHGCMDDFT can’t be used to change the default. You can’t change a default value that is null.
To change the file specification, the query must be recreated. There is no interface available to recreate Query/400 queries except interactive WRKQRY.