Front End/Back End

G

Garret

Hello Everyone. I kind of found some information on this topic
yesterday but I still have a few questions.
I have Access 2000, and I am looking to create a Front End interface
that Users will be using, and a Back End interface (or basically
regular MS Access) that the Administrator can use. I want to do this
using only one copy of Access, in other words, I don't want to buy
Access for each of the computers that will be using the Front End.
I've heard of MDE as a Front end file, is this correct? If so, how can
I create an MDE, distribute it to the Users' computers, and keep the
MDB (main database) separate for Admin use?
Also, the Admin has to be able to update the Database and have the
changes happen everywhere (so Front-End users information is constantly
updated).
Much Thanks.
 
R

Rick Brandt

Garret said:
Hello Everyone. I kind of found some information on this topic
yesterday but I still have a few questions.
I have Access 2000, and I am looking to create a Front End interface
that Users will be using, and a Back End interface (or basically
regular MS Access) that the Administrator can use. I want to do this
using only one copy of Access, in other words, I don't want to buy
Access for each of the computers that will be using the Front End.
I've heard of MDE as a Front end file, is this correct? If so, how can
I create an MDE, distribute it to the Users' computers, and keep the
MDB (main database) separate for Admin use?
Also, the Admin has to be able to update the Database and have the
changes happen everywhere (so Front-End users information is
constantly updated).
Much Thanks.

You're inter-mixing terminology.

In a split app there is a separate front end that you give each user and one
that you keep as the developer and a shared back end file that holds the data.
The back end is not "for the Administrator".

Separately, the front end files that you give your users can be MDE files rather
than MDB files which prevents the users from modifying code-based objects or
viewing the code. An MDE still needs Access on the computer to be used.

Separately, your users can be given the Runtime version of Access to run the
file you give them instead of having to have a licensed version of Access
installed. When you install the Runtime you are in fact installing full-blown
Access. It just includes hundreds of registry settings that prohibit all of the
development capabilities. It can be used to "run" Access files, but not to
create them or modify their design.

In order for you to give them the Runtime you would have to purchase the
Developer's Tools for your version of Access. It is not inexpensive and your
app has to have quite a bit more "polish" to be successfully used in the Runtime
environment so this is only worthwhile from a cost standpoint if you will be
distributing to at least several users. For just a handful, you are better off
just purchasing Access for each user.
 
G

Garret

What kind of cost are we talking about here? So far I only have 1 copy
of Access 2000. The Database will need to be accessed through the
Front End on at least 4 or 5 other computers.
Also, you were telling me yesterday of how to customize the menu bars
and so forth. Is this what I would still do when creating this Front
End? How about if I used Developer's Tools? Does the Developer's
Tools require Professional knowledge of Access?
 
G

Garret

So the only way to have the other Users access a Front End of this
Database is to either buy Access on each of their computers, or buy the
Developers Tools for Runtime?
In the Developers Tools, in creating all the menu bars manually like
that, I want to know if this program links directly to MS Access, so
you can include code like:

DoCmd.OpenForm "Form1"

or does the Developers Tools have to seek out routes to the MS Access
Database to do something more like:
DoCmd.OpenForm "C:/Documents/Folder1/ect....

or something completely different?

Also, I still need to know how all these will be linked so everyone is
using the same version of the Database, 24/7.
 
G

Garret

Rick said:
All of the same commands and code work identically. You just don't get the
built in command bars or the db window. For example; if you had an Access
file that did not have a custom main menu defined in Startup and did nothing
to automatically open a form at Startup, when launched in the Runtime you
would have a big gray window and no way to do anything (except close it).

Thats probably what I would want right? Then I can create my own menu
bars. Theres no reason that a User should see the database window
either
If you give each user a front end with links to a common back end then they
are all seeing and editing the same data. If you want them to have the same
version of the front end after you make changes then you have to replace all
of their files with a new one. The use of the Runtime has no relevance to
that issue. There are methods and tools you can acquire that can automate
this distribution for you.

If I buy MS Access for each User, then are the tools required? If not,
do you have any links to these tools, or at least specific names so I
can research them?

On a side note, if I don't do either of these (buy 5 Accesses or
Developer's Tools for Runtime), and I just create my own interface
using MS Access how you were telling me how to yesterday, is there then
a way to distribute that to each user?
 
R

Rick Brandt

Garret said:
Thats probably what I would want right? Then I can create my own menu
bars. Theres no reason that a User should see the database window
either

The runtime does automatically impose a "security" of sorts yes.
If I buy MS Access for each User, then are the tools required? If not,
do you have any links to these tools, or at least specific names so I
can research them?

I don't understand what you're looking for. Your app is a file. To make
design changes to the app you make design changes in your copy of the file
and when you are finished you give all your users a copy of the new file
which replaces the old copy they had previously. Access (be it licensed or
the Runtime) is merely the executable that is going to run the file you give
them. It has nothing to do with "keeping them on the same version". That
is your problem.

Tony Toews has a tool that allows for updated versions of the front end file
to be automatically distributed to each user when they open the application
any time a source copy on the network is updated. I personally have the
users first open a separate Access file that I call the "VersionChecker".
It compares version numbers in their local file to a table in the back end
and if they don't agree a new copy of the front end is copied to their PC
and then opened.
On a side note, if I don't do either of these (buy 5 Accesses or
Developer's Tools for Runtime), and I just create my own interface
using MS Access how you were telling me how to yesterday, is there
then a way to distribute that to each user?

No. This would be the same as giving them an Excel file when they don't
have Excel installed. They would double-click it and Windows would indicate
"I don't know what to do with this file". Now, if by "create your own
interface" you mean write a stand-alone executable program in C++ or VB or
some other programming tool and simply use an Access file to store the data
then yes, you can do that.
 
G

Garret

Rick said:
I don't understand what you're looking for. Your app is a file. To make
design changes to the app you make design changes in your copy of the file
and when you are finished you give all your users a copy of the new file
which replaces the old copy they had previously. Access (be it licensed or
the Runtime) is merely the executable that is going to run the file you give
them. It has nothing to do with "keeping them on the same version". That
is your problem.

I guess I didn't mean "version". I just meant that everyone should be
using the same Data in the same Database. For example, if I give
everyone the database, I want records to be added/updated/removed and
the front end guys can then see the updates instead of of using the
same "version" that was originally distributed.
Tony Toews has a tool that allows for updated versions of the front end file
to be automatically distributed to each user when they open the application
any time a source copy on the network is updated. I personally have the
users first open a separate Access file that I call the "VersionChecker".
It compares version numbers in their local file to a table in the back end
and if they don't agree a new copy of the front end is copied to their PC
and then opened.

This appears what I would be looking for.
No. This would be the same as giving them an Excel file when they don't
have Excel installed. They would double-click it and Windows would indicate
"I don't know what to do with this file". Now, if by "create your own
interface" you mean write a stand-alone executable program in C++ or VB or
some other programming tool and simply use an Access file to store the data
then yes, you can do that.

I wouldn't know how to program like that. But I thought there was a
'read-only' kind of file that did not require Access to be installed in
order to access the Database, except they can still add/update/delete
records but cannot design any new tables/forms/reports/ect. Nothing
like that?
 
R

Rick Brandt

Garret said:
I guess I didn't mean "version". I just meant that everyone should be
using the same Data in the same Database. For example, if I give
everyone the database, I want records to be added/updated/removed and
the front end guys can then see the updates instead of of using the
same "version" that was originally distributed.

That is accomplished with the FrontEnd/BackEnd setup. All front ends have
links to the same back end tables so everyone is working with the same
"database" even though they each have their own application file.
This appears what I would be looking for.

Yes, but for distributing design changes to the front end, not for data.
I wouldn't know how to program like that. But I thought there was a
'read-only' kind of file that did not require Access to be installed
in order to access the Database, except they can still
add/update/delete records but cannot design any new
tables/forms/reports/ect. Nothing like that?

What you are describing is the Runtime. It is "free" for those who are
using it, but it is not free for the developer who gives it to those users.
 
G

Garret

Lynn said:
an .MDE is a version of a database file that has had all the code compiled
and the text version of all code removed. It also prevents anyone from
modifying certain objects in the database.

Is that what I should use as a front-end? I've heard that many people
do use this, and I find it hard to believe that every database
programmer goes through all the trouble like this when making a
front-end/back-end system.
 
L

Lynn Trapp

Is that what I should use as a front-end? I've heard that many people
do use this, and I find it hard to believe that every database
programmer goes through all the trouble like this when making a
front-end/back-end system.

It depends entirely on your situation. If you need to prevent users from
making any changes to forms and reports and code, then it is a good way to
prevent it. If some of your users need to be able to create and/or modify
those things, then you don't want to use it. It's not really that much
trouble to do, however.

--
Lynn Trapp
MS Access MVP
www.ltcomputerdesigns.com
Access Security: www.ltcomputerdesigns.com/Security.htm
Jeff Conrad's Access Junkie List:
http://home.bendbroadband.com/conradsystems/accessjunkie.html
 
G

Garret

Lynn said:
It depends entirely on your situation. If you need to prevent users from
making any changes to forms and reports and code, then it is a good way to
prevent it. If some of your users need to be able to create and/or modify
those things, then you don't want to use it. It's not really that much
trouble to do, however.

Can't I still use the Security system with the different Users/Groups
to determine who can change data in which forums? All I need for the
Users who use the front-end is to be able to see all the forms, and be
able to add/update/delete records.

Now that I think about it, only a few of the Users (a few of the
bosses) will have the ability to delete records. I don't know if I
should have a command button that becomes locked until it is one of the
Administrators who is logged in or what...I wouldn't know how to do
that either =/.
 
R

Rick Brandt

Garret said:
Is that what I should use as a front-end? I've heard that many people
do use this, and I find it hard to believe that every database
programmer goes through all the trouble like this when making a
front-end/back-end system.

What trouble? You finish your current batch of design changes and then you
go to the menu and make an MDE file. Takes less than a minute.
 
L

Lynn Trapp

Can't I still use the Security system with the different Users/Groups
to determine who can change data in which forums? All I need for the
Users who use the front-end is to be able to see all the forms, and be
able to add/update/delete records.

Yes, you can certainly use the user level security, but with Access a
multi-faceted approach to security is best -- ULS, MDE's, Runtime, and your
own special forms of coded security combined provide the best security.
Now that I think about it, only a few of the Users (a few of the
bosses) will have the ability to delete records. I don't know if I
should have a command button that becomes locked until it is one of the
Administrators who is logged in or what...I wouldn't know how to do
that either =/.

That's an excellent approach. The Security FAQ contains code for determining
whether or not a user is in the Admins group.

--
Lynn Trapp
MS Access MVP
www.ltcomputerdesigns.com
Access Security: www.ltcomputerdesigns.com/Security.htm
Jeff Conrad's Access Junkie List:
http://home.bendbroadband.com/conradsystems/accessjunkie.html
 
G

Garret

Rick said:
What trouble? You finish your current batch of design changes and then you
go to the menu and make an MDE file. Takes less than a minute.

I was talking about the whole thing with programming in Runtime and/or
buying everyone Access. How do you make and MDE file anyway?
 
R

Rick Brandt

Garret said:
I was talking about the whole thing with programming in Runtime and/or
buying everyone Access. How do you make and MDE file anyway?

I would imagine that in most corporate environments all users are simply
given Office Proffessional (which includes Access) and the complications of
the runtime simply don't enter into it. That is how it is in my company,
but I actually still use the runtime because over the years most users have
upgraded to newer versions of Access and my apps have (for the most part)
stayed in Access 97.

Even then the runtime install is something that is done once per user and
that is the end of it. Future upgrades are simply swapping out a file just
the same as if they were using a licensed copy. I haven't actually created
a new Runtime "package" in a couple of years.

Making an MDE is one of the options on the main toolbar. In Access 2000 it
is found at...

Tools - Database Utilities - Make an MDE
 
G

Garret

I work for a small business thats kind of like a large business too in
terms of how they operate. But I'm not sure if we have Office
Professional, or just Access. I can find out-so you are saying that
runtime comes with this so I would not have to buy it?
Also, I don't think that I would have to purchase an Access for each
computer, I could just install Access off of the same CD onto each -
its only going on 5 or 6 computers, and shouldn't ever be accessed by
more than 1 or 2 people at a time anyway.
Can computers without Access use .MDE files?
 
R

Rick Brandt

Garret said:
I work for a small business thats kind of like a large business too in
terms of how they operate. But I'm not sure if we have Office
Professional, or just Access. I can find out-so you are saying that
runtime comes with this so I would not have to buy it?

No, Office Professional includes Access along with Word, Excel, Outlook, and
PowerPoint. With a fully licensed version of Access on the PC the Runtime is
not an issue. You give them an MDB or MDE and they can open it and use it
just as they would be able to open and use a DOC file that you gave them.
Also, I don't think that I would have to purchase an Access for each
computer, I could just install Access off of the same CD onto each -
its only going on 5 or 6 computers, and shouldn't ever be accessed by
more than 1 or 2 people at a time anyway.

Of course that would be a violation of the EULA and in a business
environment almost certainly illegal.
Can computers without Access use .MDE files?

No. You must have Access installed. Either a licensed copy or the Runtime
 
G

Garret

Alright so lets say each computer has its own MS Access, with a fully
functional .MDE Front-End.
How does one (the developer/me) get to the back-end?
Do I modify the menu bars and then compile the .MDE? Or do I create
the .MDE after finished the database, and then modify the menu bars
while in the .MDE? If it is the latter, how would the developer get to
the back-end again?
Also, how would all these link so they are working off of the same
database? I realize I can use the tools that Tony has to keep
"refreshing" it once a link is created, right?
Sorry if I keep asking almost the same questions here, I am just really
confused and I want to make sure I get this right.
 

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