473,396 Members | 1,846 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Multiuser Madness (advanced)

Hi all I have 3 horrible questions:
I am using an Access 2000 frontend with an Access 2000 db as the
backend.
I have built an automatic update feature that checks the front version
against the backend version and updates if needed.

Q1: I'm using TransferDatabase to import or link the forms, tables,
etc. I can't figure out the locking. I can't Dfirst or query a table
in one db that is being linked or imported by another db. This means
that while one user is trying to link to the backend, another can't be
using it. Is there a better way to do this than transferdatabase?

Q2: I tried just having a copy of the updated front end on a server so
that each frontend could just copy it and use it instead of the old
version. But 20% of the time the frontend connected extremely slowly
until I rebuilt it from scratch (importing all new stuff). Another
20% of the time the references don't work (they show up, but the code
won't compile) even though the library versions and paths are the same
- until I rebuild it from scratch.

I've spend a good 60+ hours one this and cannot get it solid 100% of
the time. Any suggestions you have would be greatly appreciated.
Thanks
Pachydermitis
Nov 12 '05 #1
5 1650
This is a suggestion:

Assumptions:
Clients have a network drive that is mapped at startup and they all map to
the same drive letter.
The backend database contains the only the tables.
The front end database contains tables(links only), queries, reports, etc...

Process:
Put the backend and frontend database on the network drive, along with any
componenets (ActiveX ans so on)

Option A:
Put a batch file on the network drive that copies the database to the client
machine each time the user logs in.

Option B:
Create a simple program or simple database that will also recide in the
client computer, this file would not need to be updated just installed once,
the purpose of this file is to compare the dates of the frontend copies on
the server and the client machine, if the client is older than the server
then it uses the Shell function to run the batch file on the network that
copy and replace the file(s) on the client machine, otherwise it opens the
frontend and quits.

Hope it helps

"Pachydermitis" <de******@hotmail.com> wrote in message
news:4f**************************@posting.google.c om...
Hi all I have 3 horrible questions:
I am using an Access 2000 frontend with an Access 2000 db as the
backend.
I have built an automatic update feature that checks the front version
against the backend version and updates if needed.

Q1: I'm using TransferDatabase to import or link the forms, tables,
etc. I can't figure out the locking. I can't Dfirst or query a table
in one db that is being linked or imported by another db. This means
that while one user is trying to link to the backend, another can't be
using it. Is there a better way to do this than transferdatabase?

Q2: I tried just having a copy of the updated front end on a server so
that each frontend could just copy it and use it instead of the old
version. But 20% of the time the frontend connected extremely slowly
until I rebuilt it from scratch (importing all new stuff). Another
20% of the time the references don't work (they show up, but the code
won't compile) even though the library versions and paths are the same
- until I rebuild it from scratch.

I've spend a good 60+ hours one this and cannot get it solid 100% of
the time. Any suggestions you have would be greatly appreciated.
Thanks
Pachydermitis

Nov 12 '05 #2
You'll find an updater at MVP Tony Toews' site,
http://www.granite.ab.ca/accsmstr.htm. It gets good reviews, but I had good
luck with the approach you used of versioning in the front and back ends,
and letting the user copy down the new front end, in several client-server
applications.

Larry Linson
Microsoft Access MVP

"Pachydermitis" <de******@hotmail.com> wrote in message
news:4f**************************@posting.google.c om...
Hi all I have 3 horrible questions:
I am using an Access 2000 frontend with an Access 2000 db as the
backend.
I have built an automatic update feature that checks the front version
against the backend version and updates if needed.

Q1: I'm using TransferDatabase to import or link the forms, tables,
etc. I can't figure out the locking. I can't Dfirst or query a table
in one db that is being linked or imported by another db. This means
that while one user is trying to link to the backend, another can't be
using it. Is there a better way to do this than transferdatabase?

Q2: I tried just having a copy of the updated front end on a server so
that each frontend could just copy it and use it instead of the old
version. But 20% of the time the frontend connected extremely slowly
until I rebuilt it from scratch (importing all new stuff). Another
20% of the time the references don't work (they show up, but the code
won't compile) even though the library versions and paths are the same
- until I rebuild it from scratch.

I've spend a good 60+ hours one this and cannot get it solid 100% of
the time. Any suggestions you have would be greatly appreciated.
Thanks
Pachydermitis

Nov 12 '05 #3
NB
> Q1: I'm using TransferDatabase to import or link the forms, tables,
etc. I can't figure out the locking. I can't Dfirst or query a table
in one db that is being linked or imported by another db. This means
that while one user is trying to link to the backend, another can't be
using it. Is there a better way to do this than transferdatabase?
Why would you need to use transferdatabase?
Since the front end size seldom exceeds 10-20 MB, the best (and
simple) way to update clients' frontends is to replace the whole
front-end mde files. On a 100Mbps network it would take less than
20-30 sec to do this.

Q2: I tried just having a copy of the updated front end on a server so
that each frontend could just copy it and use it instead of the old
version. But 20% of the time the frontend connected extremely slowly
until I rebuilt it from scratch (importing all new stuff). Another
20% of the time the references don't work (they show up, but the code
won't compile) even though the library versions and paths are the same
- until I rebuild it from scratch.
Look at the answer for Q1
I've spend a good 60+ hours one this and cannot get it solid 100% of
the time. Any suggestions you have would be greatly appreciated.
Thanks
Pachydermitis


You can spend about 30 minutes to do a good search on this NG and
other Access resource sites and may straight away find the solution

I personally used to update frontends by Tony's free utility at
http://www.granite.ab.ca/access/autofe.htm

Now I use this solution by Danny Lesandrini, much cleaner, and all
Access-native: http://www.databasejournal.com/featu...le.php/3286111

And last thing: your question is not "advanced" at all, I think

NB
Nov 12 '05 #4
Thank you all for your responses.
I did a miserable job asking the questions, let me try again.
I have an Access Database as a backend. I am using another as a
Access DB front end. The backend database only has tables in it that
the front end links to. There are multiple users. To update the
functionality of the database I only need to change out the front end.
Copying the front end database should be simplest way, but I ran into
two problems, hence my questions. Keep in mind that these problems
differ between companies and computers within the companies.

1: I have been having problems with occasional corruption (or
something) in the database - corruption that compact and repair won't
cure. Creating a new database and importing all the objects into it
does fix it though. It manifests itself in the database running at
about 1/4 speed.

2: I have also been having occasional problems with the references.
The database compiles, the reference paths are correct, but many of
the library's functions are unavailable. Re-establishing the
references solves this issue.

In order to compensate for the first two issues, when updating, the
old front end copies the new front end to the local machine and
imports all of its objects. (This also improves performance and
precludes any problems of two people updating their databases from a
single master at the same time). The problem is in importing the
linked tables. Since they are linked, they must come from the back
end and not from the new copied front end.

3: If someone is already using the back end, transferdatabase tries to
lock the table and causes an error. Is there another way to control
locking on transferdatabase since no data is in question? Is there
any other way to link tables?

4: I've thought of using adox, but how do I create a connection
between to databases that I am remote controlling from a third?

I hope I did a better job explaining this time.
Thanks again
P

Oh, and NB, perhaps now you will find this a little more challenging.
:)
Nov 12 '05 #5
NB
> functionality of the database I only need to change out the front end.
Copying the front end database should be simplest way, but I ran into
two problems, hence my questions. Keep in mind that these problems
differ between companies and computers within the companies.

1: I have been having problems with occasional corruption (or
something) in the database - corruption that compact and repair won't
cure. Creating a new database and importing all the objects into it
does fix it though. It manifests itself in the database running at
about 1/4 speed.
FE or BE corruption? I guess you refer to FE corruption

You should always have a master copy of the FE mde file on a network
shared folder (or FE mde files if you have different FE for different
users).

Users then copy that to their local folder

If a user's FE ever corrupts, just simply copy the fresh FE mde file
from the server's shared folder to replace it.

If network bandwith is not a problem and your FE mde file size is not
huge, make a batch file [that copies the new, fresh FE down to local
folder then runs it] everytime user double-click a shotrcut on their
desktop. Teach users to run the app only by double-clicking that
shortcut

2: I have also been having occasional problems with the references.
The database compiles, the reference paths are correct, but many of
the library's functions are unavailable. Re-establishing the
references solves this issue.

In order to compensate for the first two issues, when updating, the
old front end copies the new front end to the local machine and
imports all of its objects. (This also improves performance and
precludes any problems of two people updating their databases from a
single master at the same time). The problem is in importing the
linked tables. Since they are linked, they must come from the back
end and not from the new copied front end.


When you import linked tables, the links are imported

But
If you have the new front-end, why not run it? why bother importing
objects into the old FE?

If you decide you do not need a fresh copy of the FE everytime users
run the app, the order here should be:

- User runs the FE
- The FE compare its version and the latest version on server
- If the two are different, the FE opens an update utility (another
mde file) before quitting
- This Update utility copies the FE on server to local folder
- The Update utility opens that new FE for user before quitting itself

NB
Nov 12 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Howie | last post by:
Hi, i need a simple multiuser access to a file for parameters like increment numbers. The numbers are needed for order-numbers etc. They should be incremented by every programm (client) on an...
4
by: Pablo | last post by:
At my current job I've been tasked with maintaining a very old C++ application written largely in ANSI c++ in what I believe to be with an old DOS based Borland compiler. I'm trying to add a...
0
by: Durai | last post by:
Hello All, How to test the "Multiuser testing" in PostgreSQL?. I used the apache bench "ab" tool for this one. The following command execute the "test.php" 50 times concurrently. $ ab -c 1...
3
by: Yannick Turgeon | last post by:
Hello all, We are using A97-SR2 and XP. The problem is (simplified): - We've got an A97 db (say "a97.mdb") on a file server (say "S"). - Many persons need to access this database at a same...
0
by: s | last post by:
I need to develop a multiuser database application to be used by four people(The number of users are not likely to increase). It is for storing records of different versions of particular papers. I...
2
by: carlos | last post by:
Hello Experts! I have been programming for about 5 years now(mainly using asp.net C#), and I am ready to expand my skill set and add some advanced javascript and ajax skills under my belt....
1
by: Kayvine | last post by:
Hi guys, this is a question I have for an assignment, it is pretty long, but I am not asking for the code(well if someone wants to write I'll be really happy, lol), but I just want to know how to...
60
by: DuncanIdaho | last post by:
Hello This is a rant. If you don't want to read it then don't, simple really. I usually spend my working life buried away in the back ends (fnar) of business systems. Serverside stuff over...
0
by: raamay | last post by:
I am new to VB.Net but since i have a good experience in VB6(having developed 2 to 3 desktop applications), i find no problem coping with the new environment at this stage. Well, i am planning to...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.