Distributable database applications?

Hi, I am an amatuer programmer that would like to develop some desk-top data base applications and distribute them (for the foreseeable future for free) to other users.

So far, I have spent a lot of time developing distributable databases with Access 2002/VBA (with the runtime license provided under XP Office Developer).  I know what I'm doing with Access 2002/VBA, but the problems of distributing run-time versions of Access for these applications (ie, conflicts with versions of Access on end-users' machines) have been a big disincentive for installation of these applications.   So I'd like to start over with something that end-users can install with fewer problems/issues.  I have been considering three alternate paths and would really appreciate input from the experts:

1)  I could continue to work with Access/VBA, if the latest version of run-time Access is easier for users to install, but I doubt this is the case.

2)  I could use VB .NET or VB 2005 to develop a true stand-alone application, but where would such an application derive its database functionality?  Would I still have to distribute run-time Access with it for it to run, or do VB .NET/VB 2005 have some kind of internal database functionality?  

3)  I would also like to learn Java and have considered using Java with MySQL.  This sounds rather clunky, and it seems like users would have to install two applications (my Java app and MySQL), which would be a drawback.

Thanks in advance for your feedback; be prepared for a couple of follow-up questions!

Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

gabesoSolution ArchitectCommented:
If you compile access to an MDE is that not redistributable?

There are free microsoft databases: SQL Express/MSDE - you can use these in an application.

Why don't you get VB.Net Express and SQL Express from Microsoft - these are free and you can build applications with them (at the moment!).

Remember that there is a huge difference between the single-user application with a local database and the 'enterprise' application using a server-based database in terms of deployment and support. So you need to think about exactly what it is you are doing.

I must also suggest SQLite which is fast, free and really superb - its a single file relational database: You can interface to it from anything.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
tmreiterAuthor Commented:
If you compile Access to an MDE, it is distributable but (as far as I know) the users need to have Access to run it?

All of my applications will be single-user/local relational database, so many programs (MySQL, etc.) will be overkill.  That said, the database needs to have a pretty good user-interface.

When you say that I can "build applications" with VB. Net express and SQL Express--the one thing I really don't understand is how to create relational database functionality with a database application?  That is, how do I build a relational database with VB. Net without using Access.  I've looked at quite a few books on VB, etc.,  but none seem to address this rather niche topic.  Sorry for being dense about this, but I don't get it...

I will look at your suggestions--they sound interesting, but I am still a bit confused.

Nick UpsonPrincipal Operations EngineerCommented:
you could use firebird (free & open-source), the embedded version which is just 1 .dll, as your database engine. primary website is www.ibphoenix.com
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

tmreiterAuthor Commented:
I've looked at sqlite and firebird, but have three issues with them:  1)  I don't know C or C++, and if I've got to learn a new language, I'd prefer it to be Java or VB .NET (because of other things I wouldn't mind doing with them); 2)  my data bases are small but I do alot of SQL manipulation (outer joins, subqueries, calculations), and (based on my very limited knowledge of them) it seems like some of the open-source DBs have quirky SQL limitations; and 3) given my inexperience, I need something that is as fully-documented as possible, and I'm concerned that the documentation on most of the open source stuff is either rather thin or aimed at more experienced programmers.  

I actually have VB .NET but am not quite sure what to do with it...
>>>"I could use VB .NET or VB 2005 to develop a true stand-alone application, but where would such an application derive its database functionality?  Would I still have to distribute run-time Access with it for it to run, or do VB .NET/VB 2005 have some kind of internal database functionality?  "  your VB or VB.net application could continue to interact with the Access MDB - and this would NOT require any version of 'real' Access to be installed - VB has the necessary datbase drivers built in, to be able to open and interact with the MDB/MDE as a pure DataStore.

You could also take a look as SQL Server 2005 Express Edition - which is free!! and is 100% compatible with SQL Server and VB.NET.  SQL Server 2005 EE supports Stored Procedures (which are not possible in Access)


gabesoSolution ArchitectCommented:
The easiest and most straighforward thing for you to do is use VB.Net and SQL Express- at the moment.

This all depends on your skill-set - the more technical you become the more you can start hacking around with API's for non-microsoft databases. If you aren't that confident then stick with Microsoft tools and applications.
tmreiterAuthor Commented:
Thanks, based on your previous comments, I think you're right.  One last question:  SQL Express certainly sounds like part of the answer, but is there any particular reason to choose VB .NET (2002) over VB Express 2005?  I've got the full-blown VB.NET 2002 but it sounds like VB Express 2005 is designed to work with SQL Express and its free, so I'm leaning toward VB Express 2005.  Am I missing something obvious?


gabesoSolution ArchitectCommented:
The .Net Environment has moved on to 2.0 - so working with VB Express 2005 means that you are working with .Net 2.0

VB.Net 2002 is .Net 1.0 which was superseded by .Net 1.1 (VB.Net 2003)! So those tools work with older .Net environments.

In general, try to work with the latest tools.

Good luck.
tmreiterAuthor Commented:
OK, thanks for your help...I'll hit the books and see how it works out.

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.