I don't know about the database situation I'm afraid.
Some general comments on Excel vs. alternatives:
It is often stated/implied that spreadsheets are not a suitable tool for serious engineering applications. I strongly disagree. I have no problem with people who prefer other tools, but for me, for very many applications, a spreadsheet (sometimes in conjunction with other software) is the easiest and most efficient way to get the job done. To suggest that it shouldn't be used because it has the flexibility to give rubbish answers when used incorrectly seems to me to be ridiculous. Any software tool can give wrong answers that may not be obvious, and all software output needs independent checks (in proportion to the potential consequences of any errors).
Regarding Excel/VBA/Python my reasons for looking at using Python are:
[ul]
[li]Python has extensive numerical applications libraries (such as Numpy and Scipy) which are being actively maintained and developed. Linking to these (via Pyxll) seems to be much easier than linking to C++ or Fortran libraries, and seems to give much better performance than linking to C#.[/li]
[li]There seem to be advantages in linking to other APIs via Python rather than VBA.[/li]
[li]Python docstrings make documentation of UDFs very easy[/li]
[li]It seems likely that VBA will receive little to no development effort from Microsoft in the future.[/li]
[/ul]
On the other hand, I'm not intending to dump VBA entirely. For most applications it remains by far the easiest way to enhance the power of spreadsheets, and I would suggest that it is well worth any engineer's time to learn the language at least to the extent that they can write a simple UDF quickly.
So for me the attraction of Python is in linking to compiled numerical analysis routines, and the attraction of Excel/VBA is in providing an easy to use and intuitive user interface with numerical data, allowing both efficient analysis, and efficient development of applications for specific tasks. Using Python as an interface to Excel seems to me a strange way of doing things, in that you are using a program with a crude user interface to access a programme that already has a powerful user interface. Going the other way provides the best of both worlds, an excellent user interface, with easy access to powerful and efficient numerical analysis routines when required.
As for whether it is worth someone who knows Python also learning VBA, I don't know. I think probably it is, but it might be worth experimenting with Python + Pyxll and see if that allows you to do everything you want.
Doug Jenkins
Interactive Design Services