the point is that all these are tools. As with the rules of tools you use the best one for the job. Some jobs have requirements that better suit one tool over another but no one tools is better in all cases than another.
When should you use access? When maintance of a SQL engine is not possible. MySQL takes a bit more knowledge to use and a bit harder to get trained in. If you don't need the advanced features of a database engine like MySQL then don't use it. To boot you could also say that Access is now better than MySQL when you look at it. Why? People equate Access with the database engine JET. Access is not JET, Older Access is a front end for JET. Access 2000 is a front end for SQLServer (MSDE) or Jet, your choice. So seeing you can swap out JET for SQLServer and get the benifits of a real Client Server SQL engine then MySQL's benifits start deminishing.
As for C++ and VB agian look at the job at hand. If you need to do some complicated things then C++ MAY be better but many factors need to be concidered.
Saying use C++ because it is portible is a farce in most cases because there are features in different C++ complires that other compilers don't support also if your app is not needed to run on multiple platforms then who cares.
Saying C++ is more stable than VB is a lie to. The code that gets writen dictates how stable a program is 99% of the time. I agree there are alot more Bad VB programmers out there then C++ but that doesn't make the language less effective just means there are more bad programmers out there for VB. VB can be as stable and as fast as C++ in many cases but it depends on the level of the programmer.
You have to look at so many factors when choicing your tools that to blindly say X is better than Y is in most cases being grossly ignorant or biased without cause. Being a MCSD MCT MCDBA with experience with Sybase, Oracle, C++, JAVA, VB, (and many other languages, databases and tools like COBOL, VSAM, ADA, ADABase (not related to ADA), FOCUS, Pearl