I suggest you modify the query data source name property in the block (forms) to your query, in parenthesis i.e. (select... from... where...) and change the query data source type property to "From clause".
You can also change the query text in your code, with the set_block_property built-in package.
It's a lot easier than basing your form in a package.
Check this out: https://sites.google.com/site/craigsoraclestuff/oracle-forms---how-to-s/forms-how-to---base-a-block-on-a-from-clause-query
As for the "single record block" I suggest you try using a multirecod one, but set the number of records displayed property to one.
Hope it helps.