6
votes

I have an Access database currently. There is a backend, and there are multiple users who use this database with their own front end. The size of the data is very small; however there are several forms that are constantly in use.

I need to migrate the data to MySQL. Should I continue to use an Access front end or program my own c# front end? Why would one be better over the other?

4
that all depends: on budget, your current skillset, number of forms... - Mitch Wheat
When you say "C# front-end" are you talking WinForms, WPF, ASP.NET WebForms, ASP.NET MVC or Silverlight? - Jesse C. Slicer
jesse, probably winforms, the simplest thing possible! - Alex Gordon
If you have the time, skill and budget I'd recommend doing anything C#. If you have the skills to do WinForms, do WinForms. Just be mindful to keep a decent separation of UI vs. business logic in the case you need to migrate the code to one of the other front-end platforms I mentioned or even a newer one in the future. - Jesse C. Slicer
Why are all the answers trying to tell you what to use for your back end when the question is about the front end? - Earlz

4 Answers

7
votes

I think you all are either completely crazy or don't know a damned thing about Access.

It is certainly true that the upsizing tools for SQL Server are easier to use than anything available to you for upsizing to MySQL. But the difficulty of upsizing should not drive your choice of back end, because it's a one-time choice. Choose your back end database based on what works best for you. While SQL Server Express is free, it has a number of limitations that MySQL itself does not have.

As I said in comments, you can export an Access table to MySQL by defining a DSN for your MySQL database and simply using the EXPORT command on the Access file menu. The results will not necessarily be perfect, so you might have to tweak the results, truncate the MySQL table and then insert the real data once the MySQL tables are all in place. Yes, this is more work than the SQL Server upsizing tools, but it's still pretty easy to do.

And it's not something you have to get right on the first go, nor do you have to do it multiple times.

If MySQL is your preferred database engine for your app, then go with it. Using SQL Server entirely because of the more elaborate upsizing tools is really a case of the tail wagging the dog!

4
votes

I would recommend migrating to SQL Server instead of MySQL. You could simply upsize the Access database to SQL Server and let it handle the heavy lifting on data. Access forms can continue to be your front end.

Per David Fenton below in comments: "Upsizing is a one-time operation and ease of doing so shouldn't drive the choice of back end." I think this is a good argument. I recommended SQL Server for ease of upsizing and existing tools, but this rebuttal brings MySQL back into the picture for me.

3
votes

Rewriting the front end will make this project more complicated, not simpler. Migrate the backend first, then evaluate whether there is a need to rewrite the UI. You may need to make some code changes to adapt Access to the new back end data source, but this will be far less effort than a full rewrite.

0
votes

If you migrate to SQL Server instead of MySQL you could develop your front-end in C# and use for it the built-in LINQ capabilities to access your data. Much easier and gratifying than Access front-end with Visual Basic for Applications ;-)