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

What should I learn instead of Access

I have now developed quite a few Access applications that run mainly in small - medium organisations.

They are all business process / data manipuation intensive applications - order processing, production scheduling, shop floor reporting, quote production, pricing, client management  and performance reporting etc. Some are pretty advanced in terms of calculations and status’s or condition of an item/order etc. One system uses treeview to display a bill of materials.

I only started the company about 6 years ago but during a career in production and distribution management and IT management I had used Access a lot – though not used much VBA. Prior to all that for 2- 3 years I was a COBOL programmer.

I have loved Access. But I have been keeping an eye on its future. More and more I see opportunities to use some of the systems (or parts of them) I have developed as internet accessed  applications – for easy remote use, or as cut down tools on websites for customer use.

Jim Detmann’s pod cast via EE on the future of Access last week tipped the balance and I have decided to seriously look at learning an alternative. I immediately looked to .net (I already have a copy of Visual Studio 2008 - I won it…) and I’ve started reading up on MSDN and looking at the walkthroughs on Visual Studio. Also most of my customers tend to use Office and many of my systems make use of the integration.

BUT I thought that seeing as I would need to invest a lot of time learning I would make sure .net was the right choice.

For developing business process / data manipulation intensive applications like those above for small to medium companies, what should I learn? Given that the ideal solution -  a fully web enabled Access - doesn’t look likely :-( .

If the answer is .net, am I looking at ASP.Net/C++(C#?) and SQL server combination solutions? VB would be a lot easier for me to learn but I thought if I was going to invest the time I might as well go for the most future proof option. Learning SQl Server would also give me a potential route to upgrade a growing Access system.

Thanks Lou.
4 Solutions
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
If you're experienced in VBA programming (i.e. not drag-and-drop Access, but actual VBA work) then the move to VB.NET would be the simplest one. Many of the concepts you learn when dealing with VBA can be used in .NET. That said, .NET is a much more sophisticated language than is VBA and there is a LOT more that can be done with it.

If you're looking to hire on with a programming company, then one of the C languages would be a better choice.

ASP.NET is more interface-involved than other languages. If you want your ASP.NET page to talk to a database, for example, you'll have to use something VB.NET or C#.NET.

Learning SQL Server is always a good thing. As you move into more sophisticated systems you'll find that they're inevitably running on a server platform (which is often SQL Server) so you'll need a good background in that.

There is no such thing as a future proof option, but in general you should look at your current roster of clients and their basic needs, and what you feel like you'll be involved in during the coming years. If everything you're going to doing is basic line-of-business stuff (much like an Access application) then VB.NET/ASP.NET/SQL Server would be the obvious choice (at least for me). If you're going to move afield of those sorts of apps, then you should definitely consider one of the C languages, along with ASP.NET and SQL Server.

For web stuff PHP is also a very popular language - but if the majority of your work is going to be desktop-based, then I'd consider that a secondary choice.
Jeffrey CoachmanMIS LiasonCommented:
Web development is a huge topic, and "Access Dev vs Web Dev" as been discussed here many different times...
So depending on what exactly you plan on doing, this may be a very broad discussion, ...possibly too broad for a single "Question" here...
...But let's see how it goes...

In a nutshell there are lot's of platforms available.

But if you see yourself staying mainly in the MS world, then invest in .NET and SQL
(Not really MS SQL Server/TSQL specifically, ...but SQL in general)

Also note that MS can change direction at any time.
*Many* Access devs complain that now that they have developed many complex Access databases, ... that they now cannot *simply* put them up on the web without getting bogged down in the whole "Web Database/Sharepoint" quagmire...

So MS may come up with a technology that lets you do this seamlessly...

But it still would not hurt to learn .net and SQL...

Dave BaldwinFixer of ProblemsCommented:
One of the things I've seen in questions here is that some people get tripped up because Access is an 'Office' application with it's own built-in interface but SQL Servers of any kind are multi-user server applications without an 'Office' interface.  Access is often used as a front end for SQL Server so you might be able to leverage that for your applications.
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

Just my two pennywoth, I'll answer from a web perspective since that's what I've got most experience with.

AS others have said above, it depends where you envisage things going. The software world seems to be moving very much to a saas model, and the easiest method of roll out is the web. Using the web as a medium has a lot of advantage to businesses, there's no need to worry about the hardware spec of users' machines, there tend to be few compatibility issues, multiple site roll out is simple, users have the same experience everywhere with no need for VPNs - people can work from home as easily as in the office, it's easy to add new users, they only pay for the users they need, upgrades are rolled out to all users at once and the list goes on...

However, that functionality is possible because the hard work is done by you ;)  there's more technology stack when moving to the web and there's a huge amount to think about. As a rule of thumb (there are exceptions to this), you'll probably want at least a basic understanding of HTML, CSS, Javascript, a Server Side Language and a good grasp of SQL. The biggest issue you'll find when making the jump to the web is that it is not event driven in the same way that an application is, the whole page is passed back to the server as a string and data is extracted from it and acted upon.

The stateless environment of the web and the disconnected way it works in contrast to desktop applications historically made local application developers hesitant in making the jump since it's such a different way of working. That's why many application developers looking to move to the web start with Microsoft webforms - they create a drag and drop environment that is familiar to the developer with the normal events you would expect to find  in a local application, like combobox change events and button click events. Webforms can be used with either C# or VB and might be a good starting point for you as they give you a starting platform. Be warned though - there's a lot of scorn and intense dislike for webforms out there (for various reasons - many of them perfectly valid have a look here http://stackoverflow.com/questions/46031/why-does-the-asp-net-web-forms-model-suck), but there's probably a sound argument for saying that for moving a desktop app to the web they offer the path of least resistance, with the least coding, learning and fastest development time. As such they're very widely used in internal applications, but increasingly less common out there on the web.

Excluding Webforms, most web based applications are based on an MVC architecture, this is a concept that as far as I know doesn't exist in access (but I haven't used it in a very long time), so that might be something to take a look at. MVC is less abstracted than webforms, so you actually deal with the requests sent by the browser. When you create a web project in VS you can choose whether you want to create a web app in either MVC or webforms. An MVC approach tends to allow you a freer reign on the user interaction of your application than webforms and tend to use more JavaScript to create more dynamic interfaces.

As to what language to learn, between VB and C# it doesn't really matter.
They're compiled into the same language, so it's largely down to personal preference. I started with VB and made the jump to C#, I find it a much nicer language since it's more terse so you can get more done with slightly less code. If you compare the same code written in VB and C# you'll see that there's not a lot of difference, it's mainly just syntax variation. It's worth noting though that the C# community is larger, so there are more tutorials, examples and more people who will offer help if you get stuck and it may be easier to hire people.

Anyway, hope that helps a bit :)
LouverrilAuthor Commented:
Many thanks for your responses – I have replied to each one below:

KylesSW: Thanks very much for this extensive response. That helps a lot!

I have quite a bit of HTML and some CSS and a tiny tiny bit of JavaScript – I created our website. SQL as used in Access I know quite a bit of now but I will have to learn more about T-SQL.

Ref “The biggest issue you'll find when making the jump to the web is that it is not event driven in the same way that an application is, the whole page is passed back to the server as a string and data is extracted from it and acted upon.”  You are right:  this sounds weird, but we'll see.

I had decided to start with the webforms walkthough in Visual  Studio as I'd picked up on that it might be as good a place as any. However I had not even heard of MVC and its not included as an option in Visual Studio – apparently I need to download it from asp.net. I will also read up on this. I will try Webforms and MVC on an example and see how it goes.
Although VB.Net might be safer for me to start with I am tempted to just go for it and use C# from the beginning. I have seen the point you make about more examples and a bigger community echoed on one or two sites I saw when googling. I’ll see how it goes.

LsmConsulting: You’ve been patient with  a lot of my weird Access questions -  as time’s gone on I have used more and more VBA to quite an advance level now.  I am hoping that that experience along with the full and very rigorous training I got when I learned COBOL should (!) help.

‘I might dive in with C but we’ll see how it goes. I don’t want to work for anyone but our own company but using C# sounds like the forward thinking thing to do if I can – mainly regarding Kyles comments about the community and also I think I read something on the .NET overview pages on MSDN about C.

Jeff: Again thanks for your help with my Access questions.

Good advice. I won’t burn my bridges with Access and I hope MS do change direction.  An Access that works creating Web Application like it does local applications would be a beautiful dream... And you are right it won't do me any harm learning more about the web stuff.

DaveBaldwin: Yes good point.  I knew this – but thanks for your response.

Many thanks,

I am now going back to trying to solve a problem with Visual Studio and script errors every time I click on any of the help topics....
Webforms are probably a good enough place to start since they're designed to be used in the same way as a local application, it abstracts the whole web layer. This is good and bad for learning imo since you never really understand what's going on under the code (I learnt more from a day with PHP about how the web works than I did from 6 months of webforms), webforms are also a real oddity - they are completely different to everything else out there, MVC  has a common structure (you can look at django (python), rails (ruby), CakePHP (PHP), MS MVC frameworks for example and even if you don't really know the language you can mostly work out what's actually going on), webforms don't give you this, but as I said they aren't a bad stepping stone since it gets you into the web and they're extremely fast to develop with.

It's probably worth downloading the 2010 web developer edition (the express version is free), it's MUCH improved over 2008 and everything's included by default :)

I'd go for C#, VB.NET is so different from VBA/VB6 that it will drive you potty trying to structure your code as you did in VB6/VBA, the name and similar syntax is about all they have in common - VB.NET is explicitly object orientated, this may be your biggest learning curve since classes aren't so commonly used in the Office Development world.

I wish you the best of luck :)
LouverrilAuthor Commented:
PS have asked this question


 about whether to use my full copy of 2008 and sql server 2005 or download Visual Studio Express and all related software from asp.net (http://www.asp.net/downloads)

LouverrilAuthor Commented:
Thanks Kyle -  Sorry I didn't see your response when I added the one above.

I will give  webforms and MVC  a quick try and see what happens.

Thanks for the points about vb.net. I will try C hope I have the patience for all of this.

I am confused about what to download. I was looking for the correct version of MVC for Visual Studio 2008 when I came on the download on asp.net for the free 2012 version - hence my question above.

Many many thanks.

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

Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

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