• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 456
  • Last Modified:

chosing between Access and VB.net - coupling data to objects

I'm about to co-develop a inventory/customer/order/invoice kind of database application. The application is for intranet use in small workgroups (up to 10 users or so). I need help chosing between access and vb.net.

I like access because of the ease of building forms and reports, and there is no coding involved to get the data on master/detail forms and update the data.

If building forms was as easy in access i would chose vb.net because as a java programmer so i like OOP (for more easy to maintain and extend code). On the other hand i don't have database expierence in vb.net. I looked into vb.net/ado.net but to seems quite hard to couple data to objects and place properties from those objects on forms (i.e. a object customer that gets data from db, and exposes properties as 'name', and i put that property on a form as a textbox). I also looked at tools that generate the data/business tier (money is not the primary issue). Also i don't know if crystal reports is as easy as drag and drop 'reports' in access.

Wich one should i chose?
Is it easy to use 'business objects' on forms in access and let the datalayer be generated? Or is this overdone for this size of project (although i might want to expand in the future)? Pointers to tutorials/samples/architectual examples are welcome too as long as they make it clear for me if vb.net is a good option to chose, and NOT more work in the long run.

3 Solutions
ADO .NET is great tool once you start getting the hang of it. As you may know, VB .NET can be used together with Access. VB .NET can be used as your front end such as forms and Access as the back end database.

Its quite neat actually, because the concept is based on using DataAdapters and DataConnection as a bridge between VB .NET and Access. Some very useful ADO .NET functions include row.add(), row.delete(), and plenty of others.

When you have made changes to the tables and are satisfied, and then you would like to commit the changes to your Access database, all you have to do is call AcceptChanges() to do so. Otherwise, you can cancel all changes by using the RejectChanges() function.

It's quite a powerful tool that is ADO .NET. I would suggest you choose VB .NET because it is so much more flexible in terms of the facilities you are given and the potential to which you can use them.

Also, to be even more powerful, instead of using Access databases, you can use XML to store all your data. VB .NET supports this and contains its own XML Namespace, which is very useful indeed. All the functions that I mentioned above can be used in the same way. It is very flexible. Just go for it. XML also stores the data at a smaller size to what Access would. Hence it is more convenient and extremely diverse.

Hope that helps!
I get for your case its better to use vb.net with ado.net because they perform better in networks (internet or intranet) since ado.net is a disconnected Database object and this will make the network trafik less, and i have used MSAccess in networks, it has alot of performance probems (specially when you have more than one user)
IMHO there is several things you have to consider and balance.
 1.- MS Access is a file-access database, mostly oriented to final user so it has simplified forms and reporting tools; you can make "applications" and distribute them, but this wasn't the main idea behind the product.
 2.- Because of that, you have limitations when working with Access: 10 users accessing the same .mdb at the same time will result in performance problems, blocked rows, etc. Besides you'll have security issues to handle and Access is not the best DB for that.
 3.- One thing you should think about: how many records do you estimate the tables will have? Don't forget the system is a living thing, so may be today was about dozens of records daily, but tomorrow this could be hundreds or thousends. Even Access could manage them, this doesn't mean it do it right. For instance: do you think in only one mdb file, located in a server, or several (individual) files? Did you think about transactions and how to handle them?
 Perhaps a better choice was a combination MSDE + VB.Net: that way you'll have performance (up to 10 users), SQL security model, scalability, a better OOP environment and a development platform that is here to stay and prosper.

 4.- Obviously, developing with .net will demand from you a learning process: so you have to think in two main things at this point: money and time. Even if you (or your company) have the money, only you (or your clients) know the time you can spend in the "learn & deploy" process.
 5.- But finally, your question is what "we" (other people) think... I can reformulate this question as "... if I spend my time (and money) learning .net, will it worth it? " If that was the question, I could certainly answer yes. .Net is not only a very good developing platform, but also an impressive way to take you further. There is also a growing number of components that help you in many ways (reporting, charts, etc). And finally, this could be a good starting point for using other DB engines besides MS Access.

www.vb2themax.com, www.fawcette.com/vsm, www.developer.com (http://www.developer.com/net/vb/article.php/3068111), http://www.hitmill.com/programming/vb/primer.html are some good sites to look as a begining.

Good luck!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now