Busines Process Rules in Access 2003

A

Avir

Hi all,

Ours is a small trading company. In order to handle our orders we made a
small ACCESS 2002 application which has grown over time.

Since I have limited knowledge of programming I would like to know if
following things are possible in Access 2003 or in VN for that matter.

- Is it is possible to integrate our business process rules in the database?
If yes, are they easy to change (according to change in business) without
changing the code.
- Make triggers according to specific events (for example when a order of
more then $10,000.- is entered an email should be sent automatically to a
Senior manager for his approval) or if an order is supposed to be shipped
next week an email is sent to the QC manager.

BTW we use a terminal server 2003 (with Office 2003) & Small Business server
2003

Any help would be highly appreciated

Thanks & best regards Avir
 
A

Arvin Meyer

Access/JET is not a server engine based database engine. All processing
takes place on the workstation. All of the things you asked are possible if
running from a form. IOW, there are no Triggers (server based) but you can
use the AfterUpdate event of a control or a form to do the exact same thing.
AAMOF, Access front-ends have many more built-in events that can be coded
than any other programming methodology.

The one concern that I have in you questions is:
If yes, are they easy to change (according to change in business) without
changing the code.

Yes, they are usually easy to change, but you must change code. Practically
all Business Rules (except some validation which can also be done with
property sheet changes) Business Rules *are* code in every programming
medium.

Your email examples are certainly possible with a form's AfterUpdate event.
I usually code a flag which is set when the condition arises to send an
email, then when the record is finished, and email is sent. This is actually
better than and easier than using a Trigger. With a Trigger, you'd need to
either denormalize your data to save an order total, or you'd need to keep
running server-side scripts to check when the order total exceeded $10,000.
Then if the order kept adding records, another email would go out. Clumsy,
to say the least. You will experience an annoying security message when
sending email from code, if you are using Outlook/Exchange. In some cases,
we killed the email functionality, in some we use the Redemption Library
which will kill the annoying security prompts, and in some, we just use
different email client/server than Outlook/Exchange. There are a number of
MVPs working on SMTP direct email solutions which avoid Outlook/Exchange.
--
Arvin Meyer, MCP, MVP
Microsoft Access
Free Access downloads:
http://www.datastrat.com
http://www.mvps.org/access
 
A

Avir

Dear Arvin

Thanks a lot for taking out time to anwser my queries.

since I have a limited knowledge of access. would you please clarify few
more things for me?

- you mentioned in your email that Access Front-ends have many built-in
events...would you please
specify some Access Front-ends.

- we are considering to move our database to SQL 2000, and the form coding
to Visual Basis. Do you think
it is a good choice (or we should just stick to Access since our database is
about 300MB)

- We wish the user to enter data according to the business process (in a
specified flow),for eg.
actual quantity should be entered only after the status of the order has
been changed to "shipped".

I know that it can be done by form coding but I noticed that Microsoft has
developed something called
Access Workflow Designe. Do you think it is useful in our case (we have 15
users and work on a access database running on a terminal server)

- we are trying to move to VB, because if we update anything in Access, we
have to ask all users
to logout from the program. Is there any way we can make .exe of the access
forms and queries so that it can be easily updated with minimum interuption
to users.

Many thanks for your reply

best regards
Avir
 
A

Albert D.Kallal

Avir said:
Dear Arvin

Thanks a lot for taking out time to anwser my queries.

since I have a limited knowledge of access. would you please clarify few
more things for me?

- you mentioned in your email that Access Front-ends have many built-in
events...would you please
specify some Access Front-ends.

A front end is simply the ms-access application that you make, and deploy to
each pc. To use ms-access in
a RELIABILITY WAY, and with MULTIPLE USERS, you split the application into
two
parts:

The "front end" part is simply the application part (forms, reports, code
etc). The back end part is simply a mdb file that you share. The VERY
important point here is that you NEVER allow multiple users into he SAME
front end, but in fact place that front end ON EACH pc. However, in your
case, you are using terminal services, so you simply give EACH USER
a copy of the front end, but this would be on the terminal server in this
case
(so, in fact EACH LOGON user would get a copy of the front end in
each of their own private folder. And, point in fact, this front end should
be a mde).

There is a built in wizard that will split your database. Do note that it is
standard fair, and for ANY amount of serious development in ms-access, you
do
split your database. The beauty of this that you can then develop, and
make changes to the application while your users continue to work on and in
the existing version.

And, further, it should be pointed out that you do NOT
have to change any code, or part of the application to do this split. So,
after you have split the database, you get a front end, and back end.

You can read up on splitting here:

http://www.granite.ab.ca/access/splitapp.htm

- we are considering to move our database to SQL 2000, and the form coding
to Visual Basis. Do you think
it is a good choice (or we should just stick to Access since our database
is
about 300MB)

First, is your database 300 megs after compacting? Further, what is the size
of the data part (assuming that you spelt it). Further, 300 megs does sound
large, are you by chance storing any pictures in this database (you should
not be). So, first, do a compact and repair, and, it certainly would help to
find out what the size of the data file is after splitting.

Do I think re-writing the application in Visual basic is a good idea? No,
why would you do such a thing? Visual basic, or c++ is not going to run
any
faster then ms-access here. For sure, you can,a and should think about
eventually moving the data part to sql server. however, when you put that
data into sql server, you still need something to write all the forms, and
reports with. Using c++, assembler, or ms-access to grab data from sql
server makes
NO DIFFERENCE in terms of performance. So, I see little need, or advantage
to move this stuff to Visual Basic. Further, after you split your
application,
then the issue of developing while users work will also be fixed.
I know that it can be done by form coding but I noticed that Microsoft has
developed something called
Access Workflow Designe. Do you think it is useful in our case (we have 15
users and work on a access database running on a terminal server)

Well, it might be useful. If you don't sit down and make up a good design
for your application, then the workflow designer will be of little use to
you. It does not let your users define a process. In fact, all it really
does is add a new field to a table, and then assign a "number" to that
table. For each step, some code/rules can be defined, and when those steps
are met, then he number is moved to the next. Not real rocket science here,
and most developers will do this anyway. For example, if you don't have a
invoice date, then you don't allow the invoice to be printed. I don't really
think these types of problems need a over complex "work flow" designer.
However, FORCING this approach on developers that don't know what they are
doing can often be a good thing.

You also can only use the workflow designer with ADP projects, and for this
reason, I actually don't know of anyone using the feature. This is because
so few of us use ADP projects.
- we are trying to move to VB, because if we update anything in Access, we
have to ask all users
to logout from the program. Is there any way we can make .exe of the
access
forms and queries so that it can be easily updated with minimum
interuption
to users.

As I pointed out, in c++, VB, and YES EVEN MS-ACCESS, we do NOT put the data
+ forms in the SAME file. You should not do this with ms-access either. As
mentioned, there is splitter built into ms-access. And, this also solves the
development
problem.

Just remember, EVEN for terminal serivdes, each logged on user GETS THEIR
OWN copy of the
front end, but in a folder specific to each user.

And, to keep the software updated, you use Tony's free updateer here:

http://www.granite.ab.ca/access/autofe.htm
 
A

Avir

Dear Albert

I am amazed to see your patience in giving me such a detailed explanation.
It might be very basic stuff for you, but for me you are a lifesaver.

I will follow your advice to split the Access database. After splitting, it
might be less then 100MB. So for some time we will stick with MSAccess.

Keep up the good work!

Thanks & best regards Avir
 
Top