Like the others, I agree that you'll never outgrow an Access front-end, with
the possible exception of needing a web front-end for an Internet based
application. I'd be careful about the "need" for an Internet based
application because they are significantly more time consuming and expensive
to build, fail more frequently, and have the potential of being less secure.
Always think long and hard before choosing to go the Internet route.
There is one universal reason for using a SQL-Server engine instead of the
Access Jet engine, and that is security. Without question a server based
engine will be more secure than and a file based engine. The file based
engine is portable, the server is not (at least not without extreme effort).
Most applications do not require much more than a secure network, but some,
such as medical databases that are require to conform to HIPPA laws, should
not be used in Access if any outside data-loss is possible. Of all the
databases I've written over the last 12+ years, less than 10% had a security
requirement, and all of those were easily accommodated by Access security
due to no further requirement than a secure network.
Now we come to user count on the back-end. My biggest user count thus far is
51. That's more than I'd normally recommend, but the way the database is
designed, I can probably accomodate 50 more without problems. The "official"
limit is 255. Well, maybe for read-only, but I would never recommend
anywhere near that number. A well-designed database can easily handle 20
users, I've seen quite a few with up to 50. The telling time to move to a
server based solution is when you start getting record locking conflicts. If
they happen frequently, SQL-Server is in your not too distant future.
The largest Access database that I'ver ever seen was 30 GB (yes I said
Gigabytes) It was built in Access 2.0 and ran from a DEC Alpha server with 2
users. It was able to achieve that size by chaining 79 separate tables in 79
separate databases to a single front end. That is an unusual case. A typical
Access database will become slow and unwieldy after 500 MB to perhaps 1 GB
in versions 2000 and later. Even if you don't have corruption problems
performance won't be snappy, especially with more than 5 or 6 users.
Performance is an issue only when table-size is large and query design is
poor. With the availablity of cheap memory and fast networks, JET can often
out-perform SQL-Server until larger numbers of users start querying more
records. Then network packet collisions will require resending some packets,
and SQL-Server will ride over top of Access without so much as a "hello
world" on the way by. Stored Procedures and Views run on a powerful server
can eliminate the network traffic problem. Server "robustness" is really
transaction logging, which, if turned off, doesn't make the server much more
robust than a well maintained workstation with an intelligent operator. When
turned on, it eats up some of the touted performance gain, so the trade-off
requires an intelligent database administrator as well as a good developer.
I still hold to my first answer without any specific criteria to work with.
--
Arvin Meyer, MCP, MVP
Microsoft Access
Free Access downloads:
http://www.datastrat.com
http://www.mvps.org/access