The Next Step

B

BruceM

Albert Kallal knows way more about this than I, so I will leave you to that
part of the thread. I mentioned InstallCreator only because I have used it
with good results, although in a different situation, so it may not be
suitable for your needs. Paying for an installation utility may make good
sense if it does what you need and saves you time in the process, but that
is your call. I will just add that an installation utility makes good sense
in that I believe it will be able to determine whether the program is
already installed, and if so where it is located if not the default
location, and things like that.
 
K

Karen

Oh, by the way, the front-end is distributed as an .mde or .accde. Both
hide the built-in toolbars/ribbons and are limited to using the
toolbar/ribbon that were created for each of them :)

--
Karen

Although currently a one-user application, it would also make sense to
develop a means to let an entire
office use the application. The user front-end would talk to a SQL
Server backend.

If only about 2-10 users in the same office will be using the appliation,
then you'll likely not need to deploy and use SQL server in this situation.

Do I use the developer tools to develop the installation package or
migrate to InstallShield or Wise

The first question I would ask right now is have you been in issuing the
many bug fixes, updates, and satisfying the many requests that those people
have for new reports, or even modifying a report?

Other issues of wide distribution might require you to add the ability to
display the company name or particular branding information for that one
organization on the each report. (and perhaps you might wanna add a button
to your reports menu bar that allows you to be mail or send the particular
document your viewing as a pdf file). Once again only you can answer these
types of questions.

Another issue is things like defaults in forms. I have a form with setup
information for the particular company (name, address etc). I also have a
form that allows me to setup the defaults for things like State/Province and
city. Thus when the person enters a new record, the default city field is
"their" city, not the one I choose during development. Same goes for the
area code default, and state/province default. What I'm suggesting here is
for you to look at any of the values in your application that you perhaps
hard coded inside of the code, or have placed inside of the forms design
mode for defaults. This issue may or may not matter for your application,
but you want to sit down and give it some thought in terms of how these
things work now.

What this means is you want advoid hard coding some of the defaults in MS
access (forms, or tables). You also have to assuem it is unreasonable to
think that you're end users are going to be able to modify the code in the
system that you're deploying.

What this also means is that you likely using a split database right? If
your application is not split, then how have you been issuing the many bug
fixes, updates etc. for new features? So, how have you been updating these
people software now? I should point out that no installer tool will solve
this problem for you, and you have to have some design considerations in
your application to allow you to issue a bug fixes and updates to your
software in the field. This usually means your application has to be split.

I cannot stress how important it is to come up with a system to manage the
updating of this software on users machines you never seen. Furthermore it
sounds like you have some experience with the application being deployed in
the field right now. Note that with wider distribution you will have to
address the issues like different screen sizes (screen resolution), and also
things like different kinds of printers (about the only advice I can mention
with different kinds of printers is to make sure that you been very liberal
with your margins in your reports.

The other issue is to you plan to deploy the application on machines without
an actual copy of a MS access installed? If that's the case, then you'll
want to consider using the runtime package and deployment system that is
available for MS access. Note that these runtime systems do not have a means
to update and maintain your software in the field for you. However, the
runtime system does allow you to build a standard windows install that will
allow you to create a CD, or even a web download in which users can install
the software.

If you're going to distribute to machines that you've never used before, or
machines that have a very large variety of different versions of office,
then you're going to have a lot of problems in this regards. The reason for
this is a MS access does not play well when other versions of MS access are
already installed on the particular target computer. If this is the case,
then you have to do two things:

1) heed the above advice about making some means of updating your software
in the field.

2) If you're going to be looking at wide distribution on machines that you
don't know what version of office they have, then you have to come up with a
fairly robust and independent install of the MS access that will not damage
or interfere with the existing versions of office, or even MS access.
Installing multiple versions of MS access on the same machine tends to be
quite problematic. As a general rule I can to avoid this type of setup
altogether.

However if I was going to widely distribute to a lot of different machines,
and reduce the problems of support and installing the software, then I would
recommend you purchase some install scripts for the runtime deplopyment
system for MS access (the ones that come with ms-access package system are
NOT up to quality for commercial distribution of your application).

You can find install scripts here:

www.sagekey.com
Where do I look for deployment specialists who are familiar with Access
applications?

How difficult it is to deploy your application is going to depend on how
well it's been designed now, and what you done so far to issue updates. Keep
in mind the issue of installing the application, and the issue of updating
new updates for bug fixes are not always one and the same thing.

The other issue of course is to do you want to install the application on
machines that don't necessarily have a version of the MS access installed?
Once again the amount of work to do this is going to be based on how much
effort and time you've put into the application now. For example do you hide
all in the additional menus and options you see in the MS access interface?
After all it might be too much that you require the users to go out and be
trained on how to use MS access. So, if you hide all things like the query
builder, and report writer from their prying eyes you make the application
far more user friendly and easy to use. For example, I don't allow my users
to see any of the query builder or any of the internals of my applications.
Take a quick read of the following as to how I allow users to to enter
things like date ranges and other parameters for report's:

http://www.members.shaw.ca/AlbertKallal/ridesrpt/ridesrpt.html

Another issue is have you design the user interface well enough to reduce
the training costs of people using this application? I give some hints and
thoughts on building a user interface that reduces your training costs by
substantial amounts here:

http://www.members.shaw.ca/AlbertKallal//Articles/UseAbility/UserFriendly.htm

If not the newsgroups then how do I find those 'experts' who know how to
take the next step? The newsgroups are great but I'm up for finding the
right 'experts' to contract with; just have no idea where to look :)

As mentioned if you are looking to purchase some deployment technologies,
sagekey is a good starting point. However the issues we'll need the most
work is to ensure that you've built and designed your system that reduces
training costs, should hide the MS access interface, should be split, should
likely allow you to deploy to users without MS access, and have designed a
means to update both the application part (front end), and the table
structures in the back end of your system by users you'll never meet in
person.
I know many of you have developed robust applications, what is the next
step?

As mentioned start by answering some of the questions above like do have you
run a split system? I talk about running a split database in the following
article of mine:

http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm

Of course one thing always leads to the next step, and once you've learned
to split your database, then I'm sure you'll have cobbled together some code
to automatically re-link the front end to the back end. Same code is here:

http://www.mvps.org/access/tables/tbl0009.h

How much work all of the above steps are really depends on how you've done
things now. For example to use the MS access runtime, you have to build and
provide your own menu system and interface. Since in all of my applications
I've always hidden the built in access menus, then deployment using the
runtime for me was no extra work at all. However if you've not been hiding
the MS access interface in your example appcation, then you have to address
this issue, Especially if you plan to use the runtime. (and of course if you
hide most of the MS access interface, then new users who will not be
overwhelmed with all kinds of menu options and features that they really
don't need to use).
 
K

Karen

OUCH! Sagekey is certainly not inexpensive but..............I think I'll
try it out :)

--
Karen

Although currently a one-user application, it would also make sense to
develop a means to let an entire
office use the application. The user front-end would talk to a SQL
Server backend.

If only about 2-10 users in the same office will be using the appliation,
then you'll likely not need to deploy and use SQL server in this situation.

Do I use the developer tools to develop the installation package or
migrate to InstallShield or Wise

The first question I would ask right now is have you been in issuing the
many bug fixes, updates, and satisfying the many requests that those people
have for new reports, or even modifying a report?

Other issues of wide distribution might require you to add the ability to
display the company name or particular branding information for that one
organization on the each report. (and perhaps you might wanna add a button
to your reports menu bar that allows you to be mail or send the particular
document your viewing as a pdf file). Once again only you can answer these
types of questions.

Another issue is things like defaults in forms. I have a form with setup
information for the particular company (name, address etc). I also have a
form that allows me to setup the defaults for things like State/Province and
city. Thus when the person enters a new record, the default city field is
"their" city, not the one I choose during development. Same goes for the
area code default, and state/province default. What I'm suggesting here is
for you to look at any of the values in your application that you perhaps
hard coded inside of the code, or have placed inside of the forms design
mode for defaults. This issue may or may not matter for your application,
but you want to sit down and give it some thought in terms of how these
things work now.

What this means is you want advoid hard coding some of the defaults in MS
access (forms, or tables). You also have to assuem it is unreasonable to
think that you're end users are going to be able to modify the code in the
system that you're deploying.

What this also means is that you likely using a split database right? If
your application is not split, then how have you been issuing the many bug
fixes, updates etc. for new features? So, how have you been updating these
people software now? I should point out that no installer tool will solve
this problem for you, and you have to have some design considerations in
your application to allow you to issue a bug fixes and updates to your
software in the field. This usually means your application has to be split.

I cannot stress how important it is to come up with a system to manage the
updating of this software on users machines you never seen. Furthermore it
sounds like you have some experience with the application being deployed in
the field right now. Note that with wider distribution you will have to
address the issues like different screen sizes (screen resolution), and also
things like different kinds of printers (about the only advice I can mention
with different kinds of printers is to make sure that you been very liberal
with your margins in your reports.

The other issue is to you plan to deploy the application on machines without
an actual copy of a MS access installed? If that's the case, then you'll
want to consider using the runtime package and deployment system that is
available for MS access. Note that these runtime systems do not have a means
to update and maintain your software in the field for you. However, the
runtime system does allow you to build a standard windows install that will
allow you to create a CD, or even a web download in which users can install
the software.

If you're going to distribute to machines that you've never used before, or
machines that have a very large variety of different versions of office,
then you're going to have a lot of problems in this regards. The reason for
this is a MS access does not play well when other versions of MS access are
already installed on the particular target computer. If this is the case,
then you have to do two things:

1) heed the above advice about making some means of updating your software
in the field.

2) If you're going to be looking at wide distribution on machines that you
don't know what version of office they have, then you have to come up with a
fairly robust and independent install of the MS access that will not damage
or interfere with the existing versions of office, or even MS access.
Installing multiple versions of MS access on the same machine tends to be
quite problematic. As a general rule I can to avoid this type of setup
altogether.

However if I was going to widely distribute to a lot of different machines,
and reduce the problems of support and installing the software, then I would
recommend you purchase some install scripts for the runtime deplopyment
system for MS access (the ones that come with ms-access package system are
NOT up to quality for commercial distribution of your application).

You can find install scripts here:

www.sagekey.com
Where do I look for deployment specialists who are familiar with Access
applications?

How difficult it is to deploy your application is going to depend on how
well it's been designed now, and what you done so far to issue updates. Keep
in mind the issue of installing the application, and the issue of updating
new updates for bug fixes are not always one and the same thing.

The other issue of course is to do you want to install the application on
machines that don't necessarily have a version of the MS access installed?
Once again the amount of work to do this is going to be based on how much
effort and time you've put into the application now. For example do you hide
all in the additional menus and options you see in the MS access interface?
After all it might be too much that you require the users to go out and be
trained on how to use MS access. So, if you hide all things like the query
builder, and report writer from their prying eyes you make the application
far more user friendly and easy to use. For example, I don't allow my users
to see any of the query builder or any of the internals of my applications.
Take a quick read of the following as to how I allow users to to enter
things like date ranges and other parameters for report's:

http://www.members.shaw.ca/AlbertKallal/ridesrpt/ridesrpt.html

Another issue is have you design the user interface well enough to reduce
the training costs of people using this application? I give some hints and
thoughts on building a user interface that reduces your training costs by
substantial amounts here:

http://www.members.shaw.ca/AlbertKallal//Articles/UseAbility/UserFriendly.htm

If not the newsgroups then how do I find those 'experts' who know how to
take the next step? The newsgroups are great but I'm up for finding the
right 'experts' to contract with; just have no idea where to look :)

As mentioned if you are looking to purchase some deployment technologies,
sagekey is a good starting point. However the issues we'll need the most
work is to ensure that you've built and designed your system that reduces
training costs, should hide the MS access interface, should be split, should
likely allow you to deploy to users without MS access, and have designed a
means to update both the application part (front end), and the table
structures in the back end of your system by users you'll never meet in
person.
I know many of you have developed robust applications, what is the next
step?

As mentioned start by answering some of the questions above like do have you
run a split system? I talk about running a split database in the following
article of mine:

http://www.members.shaw.ca/AlbertKallal/Articles/split/index.htm

Of course one thing always leads to the next step, and once you've learned
to split your database, then I'm sure you'll have cobbled together some code
to automatically re-link the front end to the back end. Same code is here:

http://www.mvps.org/access/tables/tbl0009.h

How much work all of the above steps are really depends on how you've done
things now. For example to use the MS access runtime, you have to build and
provide your own menu system and interface. Since in all of my applications
I've always hidden the built in access menus, then deployment using the
runtime for me was no extra work at all. However if you've not been hiding
the MS access interface in your example appcation, then you have to address
this issue, Especially if you plan to use the runtime. (and of course if you
hide most of the MS access interface, then new users who will not be
overwhelmed with all kinds of menu options and features that they really
don't need to use).
 
R

Richard Kohler

Karen;

Id reccomend one of two strategies:

a) Focus on moving to SQL Server.
b) partner with someone that is serious about Access. I know of a
very top-notch Access firm in Seattle.. they could help you with
something like this.

But don't count on scaling to 500 users easily.

If you want something that with much throughput; you should just pick
up a copy of dreamweaver; and copy the forms; use wizards to make
webpages. Access just isn't designed for 500 users; and there isn't a
person in the world that can make a flawless (fast) solution using MDB
linked tables to SQL Server that supports 500 users.

Are you going to just keep SQL on one server?
Or one server at each office?
Or a local copy of SQL Server on every laptop?

The Office 2000 Developer Editon has all the tools that you need to
deploy SQL Server to desktops for local storage.
Then you would just need to configure replication.

The VB 2005 Express Edition has all the tools to do this also.. it is
free and easy. That might help you to minimize a lot of the
complexities of something like this.

I mean-- these are fire inspectors that run around to different sites
with a laptop right?
It's not like they can inspect across the internet; right?

I just think that you'd be best served by focusing on the SQL Server
side of the equation. Do that, do it right for a year-- before diving
into something like this.

In general-- Access is _NOT_ a professional software development
platform. Yes; some companies use it quite successfully. But if
you're talking about something like this-- do you even know the
security ramifications of this data? I think that security on this
type of data is probably 100 times more important than it first seems.

Upsizing a MDB database to SQL Server isnt' going to work with that
many users-- unless you move to ADP.

Sorry-- but those are the facts.

-Aaron
I beg to differ. I have been using Access since v1.1 and currently have an
app with a SQL back end that supports 1000+ concurrent users in 27 cities.
Also, 3 call centers use the app. We have extrememly fast response times and
no issues whatsoever. If you know how to code effectively, Access can scale
much further than most people realize.
 
T

Tony Toews [MVP]

Karen said:
Oh, by the way, the front-end is distributed as an .mde or .accde. Both
hide the built-in toolbars/ribbons and are limited to using the
toolbar/ribbon that were created for each of them :)

I do the same although my toolbar is very, very brief.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
 
T

Tony Toews [MVP]

For 500 independend installations; single user-- they need a frontend
backend?

Sounds to me like SQL Server is a much simpler architecture.

No it's not. You obviously haven't understood her question.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
 
T

Tony Toews [MVP]

Peter Hibbs said:
However, if you will need
to make changes to the Back-End file you need a different method.

I've been using Compare'Em
http://home.gci.net/~mike-noel/CompareEM-LITE/CompareEM.htm

It has few quirks but the VBA code it produces is usable.

Tony
--
Tony Toews, Microsoft Access MVP
Please respond only in the newsgroups so that others can
read the entire thread of messages.
Microsoft Access Links, Hints, Tips & Accounting Systems at
http://www.granite.ab.ca/accsmstr.htm
Tony's Microsoft Access Blog - http://msmvps.com/blogs/access/
 
A

a a r o n . k e m p f

Well that's why-- it's in your best interests to _LIE_.

Because you're still stuck using linked tables.

WAHHHHHHHH!!!!

-Aaron
 
A

a a r o n . k e m p f

Dude Tony... If you knew how to do basic math-- you might 'get it'.

500 users with
1)
a) 500 front ends
b) 500 back ends
c) 500 temp db MDBs (ROFL what a joke!)

or

2)
a) 500 front ends
b) 1 or 5 or 50 or 500 back end databases.

So which is less.. 1500? or 501?

Come on Tony; you really must learn to give up on that linked table
crap.. Linked tables are no longer the reccomended method for working
with any database.

-Aaron
 
J

John Marshall, MVP

It is five hundred users using their own copy of the program with their OWN
data. The ONLY connection between the five hundred users is the program, not
the data. So you believe there should only be one copy of Word and everyone
should share their documents. Sorry Big Brother, it aint going to happen.

Aaron, it's time to take your happy pill, so just grow and read the
questions before posting your mantra.

John... Visio MVP

message
Dude Tony... If you knew how to do basic math-- you might 'get it'.

500 users with
1)
a) 500 front ends
b) 500 back ends
c) 500 temp db MDBs (ROFL what a joke!)

or

2)
a) 500 front ends
b) 1 or 5 or 50 or 500 back end databases.

So which is less.. 1500? or 501?

Come on Tony; you really must learn to give up on that linked table
crap.. Linked tables are no longer the reccomended method for working
with any database.

-Aaron
 
K

Karen

John,

That's exactly right, 500 purchasers vice 500 users may have been the best
way to word this from the start................... There is absolutely no
shared data, may be in the future if small businesses want to use it but for
now, there is no shared data.

At the end of the day, trying to clarify this further feels like beating a
dead horse. The advice shared so far in many of the responses is gratefully
accepted :)

--
Karen

It is five hundred users using their own copy of the program with their OWN
data. The ONLY connection between the five hundred users is the program, not
the data. So you believe there should only be one copy of Word and everyone
should share their documents. Sorry Big Brother, it aint going to happen.

Aaron, it's time to take your happy pill, so just grow and read the
questions before posting your mantra.

John... Visio MVP

message
Dude Tony... If you knew how to do basic math-- you might 'get it'.

500 users with
1)
a) 500 front ends
b) 500 back ends
c) 500 temp db MDBs (ROFL what a joke!)

or

2)
a) 500 front ends
b) 1 or 5 or 50 or 500 back end databases.

So which is less.. 1500? or 501?

Come on Tony; you really must learn to give up on that linked table
crap.. Linked tables are no longer the reccomended method for working
with any database.

-Aaron
 
A

a a r o n . k e m p f

John;

I disagree. It is 500 CUSTOMERS WHO BELONG IN A SINGLE DATABASE.
It's not very hard to do. Does it really make sense to have 500
copies of the same database? What about when you want to change
things?

Access doesn't support DDL scripts as well as SQL Server does-- so
deployment of remote scripts is painful- to say the least.

Using the existing schema; adding a single column for customerID would
do the trick.. I think lol.. and then abstract everything in views so
that you don't have to pass around _ANY_ parameters.

It's quite simple.

Much simpler than having 500 different chickens with their heads cut
off; running around.. like -- well-- chickens with their heads cut
off.

Failing to plan is called planning to fail.
Failing to use SQL Server is called planning to fail.

Keep things simple.

-Aaron
 
J

John Marshall, MVP

message
I disagree.

No, you are just disagreeable and do not know the first thing about
databases.
It's quite simple.

Too bad you can not understand what the user wants or needs.
Failing to plan is called planning to fail.
Failing to use SQL Server is called planning to fail.

Faling to read the instructions is called Erron's way.

Time to send you back to the trash. Plonk!

John... Visio MVP
 
A

a a r o n . k e m p f

I know more about databases than 99.999 % of the people in this group
to say the least.

I'm not disagreeable.

I just don't think that FIFTEEN HUNDRED DATABASES IS WHAT IS CALLED
FOR.

Nobody needs a front end and a back end.

Failing to use SQL Server is called 'planning to fail.

Don't get me wrong-- you can still use Access forms and reports.
But linked tables is no longer the reccomended way to configure
Microsoft Access.

-Aaron
 
A

a a r o n . k e m p f

so you're trying to tell me.. that you guys wouldn't mandate split
front-ends and back-ends?

Because the first time that _ANYTHING_ goes wrong- that is what you
guys reccomend.

FIFTEEN HUNDRED DATABASES IS NO LONGER NECESSARY

Keep a simple front end (ADP) and a SQL Server backend.
Deploy SQL Server to 500 people for all I care-- but don't start a new
application on _JET_.

JET is such a waste of a technology.. I mean JET is only used by
people that are too dumb to wake up out of the 80s.
 
P

Pete D.

Why would Limestone Maine investigator care to share data with Tampa Florida
investigator that doesn't even work for the same company and is independent.
Have you read any of this at all?

message
John;

I disagree. It is 500 CUSTOMERS WHO BELONG IN A SINGLE DATABASE.
It's not very hard to do. Does it really make sense to have 500
copies of the same database? What about when you want to change
things?

Access doesn't support DDL scripts as well as SQL Server does-- so
deployment of remote scripts is painful- to say the least.

Using the existing schema; adding a single column for customerID would
do the trick.. I think lol.. and then abstract everything in views so
that you don't have to pass around _ANY_ parameters.

It's quite simple.

Much simpler than having 500 different chickens with their heads cut
off; running around.. like -- well-- chickens with their heads cut
off.

Failing to plan is called planning to fail.
Failing to use SQL Server is called planning to fail.

Keep things simple.

-Aaron
 
A

a a r o n . k e m p f

Just because Amazon.com sells things to 10,000 different customers--
does that mean that they should have 10,000 different databases?

Come on kids.

Yes; there are some reasons to have a duplicated schema.
The punchline is this-- having 500 databases on a single server is 100
times more managable than 1500 different databases on 50 different
states

I would personally do it all in one database.

Because that would be much simpler.

You see-- if you used SQL Server; you wouldn't have to rewrite it
every 6 months.
What if you have 500 copies and 10 of the people cross the TWENTY FIVE
MEGABYTE LIMIT of MS Access??

-Aaron
 
A

a a r o n . k e m p f

It's only 'stupid old MVPs' that use jet.

Anyone with a clue upsized to SQL Server a long time ago.

-Aaron
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top