tags:

views:

474

answers:

15

It comes with Office, it is a "medium good" database, it has more than 800 questions here until today, but I never paid attention to it.

I'm losing something interesting?

I am talking about MS-Access as an IDE for rapid prototyping (or something similar), not about MS-Access as a database only.

+6  A: 

I can't really figure out what you're trying to ask but I use Access on a daily basis and it is great for quickly loading and playing with data. Using it for a long term solution is probably not a great idea.

Joe Philllips
Whether or not it is a good solution in the long term depends on THE PROBLEM IT IS BEING USED TO SOLVE. I have dozens of clients who have been using the Access applications I've built for them over the last 13 years. Also, it's important to distinguish Access as front end (it can be used with just about any database back end) vs. the Jet database engine. Jet as back end is more limited in its appropriateness than Access as front end.
David-W-Fenton
+3  A: 

For rapid prototyping, Access is hard to beat. But...

A lot of the development work I've encountered at as a consultant revolves around ripping out and replacing Access databases that are:

  • Inconsistent
  • Unreliable
  • Unmanaged

If you're a developer, you might get work translating Access into something more manageable, which might be a plus. But most of the time, Access is used as a solution for the more computer savvy elements of a company to put together ad-hoc data solutions without IT intervention or expensive projects for little business gain.

Stefan Mai
Of course the reason that you end up with Access Databases that are occasionally inconsistent, unreliable, and unmanaged is that Access is *so* easy to learn that people with virtually no development experience can pick it up and learn it. And of course they make all of their mistakes on that first project:) I've ofter said the blessing of Access is that it's sooo easy to use. And the curse of Access is that it's soooo... Well you get the point:)
Oorang
And that spaghetti project somehow becomes critical to a department. The originial tech-savvy "developer" moves on. Then it becomes someone elses problem and the bugs start to become apparent (like a failure to handle simultaneous updates). Oh, and the next version of Access comes along and the thing stops working. It's a fairly insidious cycle.
Brian Reiter
Oh, and the IT department are very unresponsive to any requests so the users go ahead and build what they can with the tools they have. Then the IT dept becomes all horrified.
Tony Toews
You get the same thing with Excel, Word docs with forms and soon we'll be seeing this with SalesForce.Com, Coghead, and all the other easy to use/screw up net services. I'm sure many carpenters have had to take over some do-it-yourself project that got out of hand. Get over it and get paid for it.
Jeff O
@Guiness Lol, nobody is complaining about the work. If anything, Access "prototyped" projects obviate the usually insidious problem of having to figure out what the customer wants. "This, working" is a brilliant description of the problem for a person who loves to code.
Stefan Mai
Been there, done all that :) I was called in to 'save' a business-critical Access 'database', which was home-grown by an accountant. Actually a big ball of mud with 10 different databases linked together, with paths hard-coded, 80% unused queries (of form queryOld, query2, query2Old etc.). Ended up with me just delivering a 'how to use it' document, and an 'inventory of everything that needs doing for the day you want to invest in recreating the whole thing'.
Benjol
+1  A: 

The form editor in MS Access is quite well done. They have good support for rendering reports, and stand as a good introduction to report generation. It's not as good as Crystal Reports or Jasper, but it's quite nicely integrated with VBA to allow you to manipulate forms, databases, or even programming variables. You can take it as far as you like.

Overall, I would say it's very worth looking at if you're not familiar with programming UI forms, or defining reports.

Kieveli
Actually it's VBA based on VB 6.0 and not VBScript.
Tony Toews
+2  A: 

One of the strengths of Access is that it's easy to pick up and learn, and you can easily navigate the data in a smallish database. However, SQL Server Express and VB.net are equivalently easy to learn and may offer better long term job skills. Given the choice, I'd recommend the latter.

joeslice
For many (most) things it is actually easier to use Visual Studio + SQL Server Expresss. Access excels at a form of development where you create a table (including weird things like checkbox and list columns) and Access automagically creates a form that you minimally tweak. Anything beyond that and you are starting to fight the system. Also version control and development teams are impossible as the code is embedded in the database.
Brian Reiter
The idea that VB.NET is as easy to learn as Access is just bloody ridiculous.
David-W-Fenton
I guess if you just work in the .NET environment, there is a steeper curve, but trying to get a power user to understand compiling, creating installations and distributing is way over their head.
Jeff O
SQl Server Express and vb.net are NOT equivalently easy to learn, and is not as fast for rapid prototyping. I agree however that it *might* offer better long term job skills.
iDevlop
A: 

I would avoid it unless I had to. It offers less than SQL Server Express and you can use full-blown reporting services with the developer version of SQL Server (to prototype). I think Expression Blend and WPF is a much better UI prototyping environment.

JP Alioto
+1  A: 

More than anything else, Access is good to learn because of the following:

It's so easy to understand and use, that non-IT folks in your organization will decide to build business critical applications around it and expect you to maintain it because there is no budget to upgrade to a more Enterprise-ready database.

As a developer, you may never use it for anything more than rapid prototyping or other simplistic tasks, but to support the business, it is worth the time you will spend.

DashTechnical
And Access works well for medium complexity systems too.
Tony Toews
@Tony Toews: in the hands of an experienced Access developer, yes. But a lot of people who style themselves as Access developers don't know a goddamned thing. And I make lots of $$$ cleaning up after them.
David-W-Fenton
A: 

Access is a terrible database, but it's a fine data manipulator. Ms-Access can read from and write to all sorts of data sources. So while I prefer Postgres, SQL Server, DB2, etc., I find Access to be of use from time to time when I need to move data around from one source to another.

Alan
A: 

Access is perfectly suitable for a very large number of projects and aside from VBA which is too complicated for knowledge workers and too mind numbing for hobbyists and up, Access fills a void that few other "out of the box" applications do.

Plus there's a very good upgrade path to SQL Express if need be. And as Alan mentioned, Access is a very useful tool for connecting to any kind of OLEDB/ODBC data source to work with it in familiar ways. Try connecting Access to SharePoint if you ever need to do any kind of batch maintenance and you'll be glad you did.

Oh, I should also mention that I would never personally touch Access except for the last point. :)

Josh Einstein
Mind numbing? VBA works quite well.
Tony Toews
I would have voted up your post if you hadn't thrown in the gratuitous insult at the end.
David-W-Fenton
Oh well, I was just being honest. Otherwise it'd be pretty hypocritical for me to recommend Access to someone when I myself never use it. I'm also a highly experienced .NET developer with no need for it.
Josh Einstein
Mind numbing? Once you discover the Implements keyword things start to get interesting.
onedaywhen
That was added in something like VB 4.0 and it doesn't really help much in Access. But yeah back in 1997 or so when I first used it, it was interesting.
Josh Einstein
Implements was added in VBA6.0, the most modern version of VBA there will ever be. OK, this is still late-1990's but my point is that Implements is as good as it gets and makes VBA much more interesting and often leads to experimentation with (and even addiction to) harder substances such as .NET :)
onedaywhen
+2  A: 

For a front end, it's a fantastic RAD tool. For a backend, it's the tool you use when you can't get a database service:) But SQL Express and SQL lite are free use them as your backend when you can. If MS wants it to stay relevant though they need to move it to .net instead of basing it off VB6/COM. MS did a pretty bangup job of killing VB and I think it will get harder and harder to convince people to invest in learning a dead (dying?) language.

It's also pretty darn useful for reporting analysts who just need to slice and dice data:)

Oorang
Access is not a back end. Jet is a back end.
David-W-Fenton
Well I suppose it depends on your perspective. Jet is a series of libraries, but you still need to access and store that data using Jet, and access provides a nice way of hitting Jet to accomplish said:)
Oorang
Why do you need Access to work with an .mdb file as a backend? I wouldn't install Access on a web server, but I wouldn't use an .mdb file for a website either.
Jeff O
I'm confused as to the point you are making?
Oorang
@David W. Fenton: Access is indeed a back end. Although you do not use it yourself, I'm assuming you've heard of the new-to-Access2007 engine called ACE where the 'A' stands for 'Access'. What used to be known as 'Jet' is now known as the 'Access database engine'.
onedaywhen
I think perhaps the point being made here is that you can use ACEDAO,DAO,RDO,ADO,ADO.Net and just about any other component of the MDAC to work with an MDB. And from that perspective you are correct. So if one were to use an MDB as a backend you wouldn't necessarily being using Access. The real culprit to the majority of issues that one encounters is that it's a file database, not a service.That said, I would point out it is occasionally useful to distill information in order to avoid swamping the recipient.
Oorang
A: 

Subforms.

Download the latest available free versions of Visual Studio and SQL Server (currently both 2008). Open a C# (or VB.NET) Windows Forms project. Use the GUI designer to create a database, a connection and some tables in SQL Server. Use another GUI designer to create a dialog with controls bound to columns in the tables you just created. Enter data and navigate the records. All this without writing any code as such. If this sounds complicated, get the book Head First C#: the first chapter tells you how to do all the above. The experience to this point will be much like it would be in Access, IMO.

So what does Access offer that Visual Studio does not? I think the answer is subforms.

In Access you can create what is calls a 'relationship' (or 'relation') between two tables, use the query builder tool thing create a query joining those two tables and the form designer to create a subform. No doubt you can do this in Visual Studio but I suspect it is easier in Access because its forms work more like reports than dialogs in any other forms-based development product. Very clever.

Professional software engineers in the Microsoft ecosphere prefer Visual Studio to Access forms and SQL Server to the Access database engine (formerly known as Jet). The free version of Visual Studio and SQL Server are more powerful than the Access equivalent tools. The skills you will acquire in TSQL and CLR language of choice (C# is most popular), ADO.NET, LINQ, etc will be IMO more transferable and less niche than learning ACE/Jet SQL, VBA, COM-based data access technology of choice (DAO is most popular), the Access object model, , etc. And as a developer you have to pay to licence Access :(

If you aspire to be a software engineer in the Microsoft ecosphere then avoid Access and take a look at Visual Studio and SQL Server instead.

EDIT: I've received two down-votes (net), and from people I consider to be Access experts, so it's time for a retraction: I was obviously wrong about what I said about subforms. To paraphrase Spinal tap, subform functionality walks that fine line between clever and stupid. I was seemingly wrong about subforms being clever. They must offer no material advantage.

onedaywhen
Here is what access offers--I can hand someone a single file, with no need to install a database server, etc. This is presuming they have office installed, but I guess that is a decent presumption if you are using access.
Wyatt Barnett
@Wyatt Barnett: re your comment about installs: no big deal, I'm not impressed. But I did up-vote your answer about mating up disparate data sources: now that is a nice feature of ACE/Jet :)
onedaywhen
DAO is not "most popular." It is Jet's native data interface layer. When your Access app uses Jet as the back end, or uses ODBC linked tables, it is the obvious choice, since in both cases, Jet is the database engine handling all the data.
David-W-Fenton
As to the advice about what "software engineers in the Microsoft ecosphere" prefer, I hope everyone takes your advice, so that all the Access projects come to me. The level of competence of those in that ecosphere is pretty low, if the results I've seen are representative.
David-W-Fenton
@David W. Fenton: native or no, other interfaces are available e.g. OLE DB is the next most popular and has support for ACE/Jet functionality not supported by DAO. It would be rather silly to shun ACE/Jet native functionality merely because it is not supported by its native (in your opinion) interface.
onedaywhen
@David W. Fenton: "I hope... all the Access projects come to me" -- hawking your wares on SO, are you? "The level of competence of those in that ecosphere is pretty low" -- you want me to trade insults on the level of competence for your average Access user, do you? Get in line: ask a question on SO with 'MS Access' in the title like everyone else ;)
onedaywhen
+1  A: 

If you are new to databases and SQL, the query builder is a useful tool to learn SQL with. It allows you to "draw" your query and then look at the generated SQL to see what it is doing. Beyond that, it is a bit limited for enterprise use!

Colin Desmond
+1  A: 

Here is one other scenario where I loves me some access--it is a great ginsu-style tool for mating up disparate data into a single format as it can talk to nearly everything, is pretty easy to use and is capable of doing some internal scripting and logic if you need anything that fancy. On the other hand, it can behave like a real database enough that you don't mind writing batch import code against it. Most of our data importing stuff ends up patching through access if things get sufficiently complex.

Wyatt Barnett
A: 

Yeah, everyone starts by saying nice things about Access, but as you read through their posts you can notice no one actually wants to use it. If you HAVE to learn with Access and there's no way around it, learn it. If you have a choice, I suggest you go with something that's used more frequently these days.

Geo
I totally disagree.
iDevlop
+1  A: 

I work with access every day but it is limited. Unless you can guarantee your RAD style prototypes are just going to be that - prototypes. Stay well clear and use .NET with SQLServerExpress.

Too often I've worked at origanisations where an access application that server 5 members is now creaking under the scale of a 100+ user base. Things are best done properly.

John Nolan
+4  A: 

MS Access is great for:

  • prototyping databases and database frontends
  • creating internal, department solutions based on databases without any formal design, written specification etc. In all environments where is a quick need and a lot of ideas how something should be done, but only you can do it ;-) It's really quick and effective, but if you want to avoid any issues it's a good idea to spend some time experimenting with MS Access to learn its strong and weak sides. Like all other technologies - it has its own logic and has to be understand properly
  • analyzing data and general data processing tasks
  • export/import data from/to MS Access and other possible database engines which can be linked to MS Access tables via ODBC

It's also quite easy to learn and you can gain new knowledge very quickly. I'm sure it can help you very much in daily work. It's worth learning definitely if you're working with database design and development or processing/analyzing of any data (like financial data etc.). In my honest opinion MS Access is one of the most misunderstand and powerful (at the same time) tools, which helps many developers or analysts a lot, but only if they spent some time studying the logic behind MS Access.

I can recommend you to make a short romance with MS Access and then see... If you can use it somewhere. It's very possible that you'll be surprised. It's also possible that you will enhance your overall skills on efficient database design by working with MS Access. A lot of quite complicated and advanced database based systems were started as a home-made prototypes or department-level supporting tools. If you don't want to be disappointed don't require MS Access to be "easier" Visual C# or something - MS Access is database development tool, not an IDE for typical programmers.

Regards,

Pawel Wawrzyniak

http://dcserwis.pl

Pawel Wawrzyniak