Solved

What should I learn instead of Access

Posted on 2013-02-06
8
493 Views
Last Modified: 2013-11-19
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.
0
Comment
Question by:Louverril
8 Comments
 
LVL 84

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 100 total points
Comment Utility
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.
0
 
LVL 74

Assisted Solution

by:Jeffrey Coachman
Jeffrey Coachman earned 75 total points
Comment Utility
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...


JeffCoachman
0
 
LVL 82

Assisted Solution

by:Dave Baldwin
Dave Baldwin earned 25 total points
Comment Utility
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.
0
 
LVL 5

Accepted Solution

by:
KyleSW earned 300 total points
Comment Utility
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 :)
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

Author Closing Comment

by:Louverril
Comment Utility
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....
0
 
LVL 5

Expert Comment

by:KyleSW
Comment Utility
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 :)
0
 

Author Comment

by:Louverril
Comment Utility
PS have asked this question

http://www.experts-exchange.com/Microsoft/Development/Q_28023890.html

 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)

Thanks
0
 

Author Comment

by:Louverril
Comment Utility
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.

Lou
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now