At work, we use/develop a LOT of MS Access apps.
Whenever the business has a significantly different problem to be solved, a new MS Access project is started.
As such, although these projects are solving fairly different problems, they may actually use very similar code in parts of each project. There are only so many ways you can extract customers from the same database, right? Or perhaps, many different projects need to work on a list of customers who we have had returned mail from. So, each time we start a new project, we have written the code to do pretty much the same thing that has been done previously.
Obviously, some way of “centralising” this functionality would be very useful. Say the database schema is changed slightly, we don’t want to have to go and update every single MS Access app. What would be a good way to do this? Perhaps many people will say “First of all, do away with all the MS Access apps!” Of course, it wouldn’t be that easy to replace all our existing MS Access apps, so it would be nice it the centralised functionality could be somehow consumed by MS Access as well. If not, I would still appreciate answers which would not work with MS Access as well.
Also, the solution would have to be in .NET as we are a .NET shop.
EDIT
We are using .NET 3.5.
References to .NET 4.0 would not be useful at this stage.
These kind of things are never simple from both technical and organisational perspectives.
If I had to tackle this I’d first look to see if we could be convinced that a single database or perhaps a more integrated collection of centralised databases would cater for the functional needs of the organisation.
Once happy with that I’d see if I could plan to build that database and migrate applications to using it with either overhaul of the front end’s totally or modify them to use data from elsewhere (I believe this is possible with MS Access).
Alternatively it might just be best to find some big enterprise app that does all that you want and migrate to that.
I’d echo what Stephan says, that you’ll need to understand the functionality so that you can prioritise and accomodate it. This will be important in determining if you end up with something a lot nicer or just a big ball of mess compared to lots of separate balls of mess.
This will also be a cultural change for your organisation since you’re going to take power out of the peoples’ hands and you’ll need to keep them involved and “sell” the concept to them otherwise they’ll not use the centralised system and will revert to building their own Access databases. 🙁