so the code works more faster.
Not sure where you got this idea. Querydefs are like compiled programs. The first time you run a saved querydef, Access calculates an execution plan and saves it so it can be reused the next time you run the query. By contrast, every single time you run an embedded query, Access must calculate an execution plan first. It doesn't take much time but you should know that embedded SQL incurs MORE overhead, not less and so is less efficient than stored querydefs.
Coming from the mainframe world, I was quite used to embedded SQL when I learned Access. Then I learned that Access does things the way it does for a reason and the reasons are not capricious. It was that epiphany that convinced me that if I was going to use Access, I should probably do things the "Access" way rather than trying to mold Access into my vision of how the world should work.
There are times when I use embedded SQL but normally it is because the SQL is dynamic rather than static. My complex search forms always use dynamic SQL. I also have a couple of queries with very complex WHERE clauses that Access takes it upon itself to rewrite to make even more complex if I save them as a querydef after switching to QBE view so I save those as SQL Strings. I still use the saved querydef but I save it in SQL view rather than QBE view and as long as I never switch to QBE view, Access doesn't try to "help" me by rewriting the WHERE clause. The saved SQL string is so I don't have to retype the WHERE clause when I fix up the querydef.
If the SQL is static, meaning that you only provide parameter values to control data selection, you will save yourself a lot of work (and some execution delay to calculate an execution plan) if you organize your querydefs efficiently and nest and reuse them.
If you are afraid of your own clumsiness (users should NEVER even see the navigation pane, so you don't need to worry about users deleting stuff), then hide the querydefs to make it harder for you to be careless.