I agree with both suggestions.
The sites suggested by JDraw are very useful and ChrisO's point is very valid.
I believe the best way to learn is of neccessity and then practice. In the context of programming you have to have a project that is important to you so you can clearly define what it is you need to know and have a vision as to how it will work - otherwise it is a bit like have a car manual to learn about maintenance but not having a car to practice on!
It does surprise me how often questions on this and similar forums are vague in what is required and more importantly, do not provide the right or sufficient information for the responder to work with.
With the right information many threads could be answered in one or two responses but often extend to 10,20 or 30 or more because the original poster provides minimal information. I appreciate there can be a language barrier but it often feels like the original poster is trying to protect their 'intellectual property'.
Basics are often not learned, such as using reserved words, use of spaces in field and table names, understanding the different treatment of numbers, dates and text in queries, the difference between fields and controls, et al.
You have to start somewhere, so get yourself a project which has meaning to you and concentrate on getting it to work the way you want it to.