Comments interspersed
Mike said:
Thanks for your input, Turtle. You're welcome.
To answer your first question, parts entered with a zero price tend to cause
problems down the road when they go out again. We can catch them at that
time and essentially go through the same excercise - get the cost from the
supplier and get the cutomer to agree, and in the end, that's what we will
do. Preventing zero price parts is more of an issue with my customer than
with me.
It sounds as if there's some internal conflict with "your customer".
The folks doing the data entry on parts as they arrive want to be able to
put them in without costing them, but the folks selling them don't want to
be responsible for costing them,either.
It's still a "requirements" issue -
the customer needs to define when the price information is required, then
you can build to his specs.
Perhaps the sales folks could see items that don't have a price yet in a
different color, or have some other cue of this problem?
My motivation for wanting to move to SQL Server is;
- I want to get away from bound forms - this is an extermely complicated
application - the front end is up to about 20 meg. In my opinion, unbound
forms and transaction processing is the best way to insure data integrity.
Unbound forms and transaction processing can be effective when the issues
with data integrity come from multiple users trying to change the record at
the same time.
However, Access offers several levels of record locking in its bound forms,
which are pretty effective in addressing that concern. Besides, it doesn't
sound as if that's really your problem.
Access's built-in referential integrity options and validations can take
care of all the issues I've seen in this thread.
I'd be interested in what you feel is superior about unbound forms and
transaction processing.
- The back end database is getting pretty large and slow - there are two and
each is up to 150 meg and growing. A year ago they were about 30 each. SQL
Server would be faster.
150 MB is not big for an Access back-end -
Access can handle up to 2GB.
If speed is an issue, the first place I look is indexes, but you sound
like an experienced enough programmer that I'd expect you have that one
under control.
There are whole sites out there dedicated to improving Access
performance; if you google in this or similar newsgroups, I'm sure you'll
find them. (or perhaps someone with this information at their fingertips
will join this thread.)
- There are getting to be a lot of users - about 50 now, and again, I don't
like Access managing all of the updates.
50 users doing simultaneous data entry? That could start to be problematic.
But in most cases I've heard of with that many users, actual changing of
data is a lot more restricted. I had an application once with 100 users and
next to no performance problems. (Of course, I've heard of poorly designed
applications where there were problems with fewer than 10 users...)
Managing updates is what Access does best. That's what it was conceived
and designed to do.
- Security is getting to be an issue and I think Access security is rather
weak.
As far as I have heard so far, this is an entirely internal application. If
you have security problems Access can't address when you (or your customer)
have full control of the users, you've got people on staff maliciously going
out of their way to hack into your software in ways that are expressly
prohibited to them.
That, I would submit, is really more of an HR than an IT issue.
- If we go to the trouble of using unbound forms in Access, we should go the
next step and get a more solid front end. See next.
I wonder what you'd consider a more solid front end?
- Corruption in the front end is getting to be more of an issue.
Do you have individual copies of the front end on all workstations,
or are they using the same front end from a server?
If the latter, I'd suggest the change immediately; that's the
most common cause I know of for front end corruption.
Is the front end set up to compact on close? (Assuming you're using
a version of Access later than 97.)
If your users all have local copies of the front end, corruption
shouldn't be much of an issue - if it happens, just replace that copy from
the server. In fact, I've known of companies which made replacement of the
front-end part of each workstation's login script. That way the user
automatically got any changes, too. (And it made compacting the front-end
unnecessary - which was especially useful in Access 97.)
Again, there are whole sites out there dedicated to Access corruption.
Pretty windy eh? If you can talk me out of wanting to get away from
AccessI'd appreciate it. I stay awake some night wondereing when the whole
thing is going to bomb.
Guess I've been at least as windy as you here.
I don't usually recommend Access for an application which must be available
24-7, and which is fully mission-critical.
I always recommend regular back-ups of Access data.
But other than that, I find that Access tends to get a "bad rap" among
programmers who have been schooled in some of the bigger databases.
In many cases, Access is both flexible and cost-effective. And its rapid
development environment really can't be beat.
I wouldn't want to shoulder the responsibility of "talking me out of wanting
to get away from Access" alone, but again if you'll browse or Google through
the newsgroups, I'm sure you'll find many others addressing this topic.
HTH
- Turtle