Should I change my name? 2centsworth sounds right!
I believe the first thing anyone should do is assess their logic capability. If a person is weak there, programming will likely be a frustrating experience.
After that, good characteristics to have include attention to detail and good basic math skills. I've seen programmers get along without either/both, but their work is usually average and they won't excel in technical positions. Of course it someone with great abstract skills starts as a programmer, he could well turn out to be an excellent technical manager, if he can get that promotion.
(No offense intended to female readers - "he" - as some of
the BEST I've worked with are women!)
Why would you listen to me? (Outstanding question!)
Experience. I worked with mainframes for 25 years, and got downsized/outsourced/retired/poor.
The frustrating thing for me is knowing that tasks CAN be done but fighting with syntax/properties/events until finding the winning combination. I've said this before and it may NOT be the best for everyone, but I think the best way to grasp the "Access way" for newcomers is to pick the "create new database" wizard that most closely fits your needs and build on it. That allows you to "make something happen" more quickly that applies to your project.
Regarding my frustration over the myriad ways to sort of do the same thing, let me give an example: My current project (ADP) involves data entry with validation. I think the best way in plain Access is to put absolutes in the table. If a date cannot ever be greater than today when entered, put that absolute validation in the table. Then, if being equal to today is unusual, add a before update event to the form control bound to that field and use msgbox to get confirmation from the user. Do that in an Access Project? Ha! The table is on an SQL server and in the version of Access I'm using (2000) the SQL error message doesn't make it through the layers to Access. O.K., just put the absolute in the form. Fine - except you can't put a title on the window that opens to report the error. So, now I've got it all in VBA. Since I began programming with assembler (a few years ago), it feels like I wasted a great deal of time messing with built-in automation just to end up the way I would've done it decades ago.
Hmmm, one needs to have the ability to deal with frustration...
Having said all of that (vent switch off), you CAN create great and wonderful databases using Microsoft's tools. Try to avoid perfection as there are always several ways to do things. But DO try to make it bullet-proof, because your users will appreciate it more if it doesn't break. And document to the best of your ability, because you want the new guy/gal to handle maintenance so you're not interrupted when you're busy feeling melancholy over the Chicago Cubs.
HTH,
Bob
Your mileage may vary, but following the guidelines in faq181-2886 will help you reach your goal.