SQL’s more data retrieval (typically found in reporting functions). SQL can be hard to learn on your own if you don’t have access to a database and query software (most books will provide access to sample database for examples, but you still need the software). If you do, then SQL’s by far the easiest of the two. I have a great book, “Sams teach yourself SQL in 10 minutes.” It’s heavily recommended by all and honestly, it’s the quickest most straight forward way to get all the basics 95% of users will ever need plus some. SQL can literally be learned in about 2-5 hours with no real background and through repetitive use, swapping chunks of code with people you’ll be breezing through it with your eyes closed in no time.
Select…
From…
Where…
VBA is more for building complex models and manipulating data. I find VBA more fun, yet also slightly more challenging. Upside, anyone with Excel can dig in and start learning. Not sure of a book recommendation, but as always, resist the urge to get the most complex manual and always start with the simplest manual you can find. Through trial and error you can self teach yourself in a day or two the basics of VBA. Although I think to become really proficient takes a longer learning curve than SQL as there’s just so much more possibility and flexibility within VBA. It’s kind of awe inspiring. Right away you’re going to want to learn the difference between absolute and relative references in VBA and when to apply each. Easiest way to dig in is to record as much of the macro as possible using the record function, then edit the code so you can learn functions you may not have known about from Excel and learn how minor tweaks impact the logic through trial and error.