473,748 Members | 8,773 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Access 97 - Multiuser databases and corruption

I've just spent some time looking through FAQ sites and searching the
google archives of this newsgroup, but I still haven't been able to
find a clear explanation of an issue with multi-user databases.

Essentially I have two questions;

1) Does the system.mdw file have any significance to multi-user
sharing of an Access 97 database other than security?

2) Can any number of users open an Access 97 database using the same
account from the system.mdw without corrupting the database?

What I have been doing up until now is trying to ensure that each user
has a unique account in the system.mdw and that any user connecting to
the database uses the same system.mdw. If it's not necessary for each
user to have a unique account, it would be much simpler to have a
single generic user account and a single standard desktop shortcut to
the front end.

I can't find any resources which clearly explain the locking system in
Access. My impression is that when a user connects to the database,
an LDB file is created which contains the details of the connection.
The information stored in the LDB file as shown by the Microsoft LDB
viewer tool appears to be related to the computer name making the
connection *not* the user account from the system.mdw, so presumably
it shouldn't matter if the same account is used on several different
computers because the locking is unique to the PC name.

What *does* seem to cause problems is failing to use a system.mdw at
all; which means that several users of an unsecured database are
connecting as "admin" from the system.mdw in c:\windows\syst em32. In
terms of rights to objects, security is not of particular importance
in the databases in question.

Having standard desktop shortcuts which include the login account as
part of the command line would make distribution of the applications
much simpler.

If anyone has in depth knowledge of how the system.mdw file and the
ldb files behave, please let me know whether the setup for these
databases can be simplified...

Rob
Nov 13 '05 #1
16 4880
Answered embedded.

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.
"Rob Geraghty" <th********@yah oo.com> wrote in message
news:b7******** *************** ***@posting.goo gle.com...
I've just spent some time looking through FAQ sites and searching the
google archives of this newsgroup, but I still haven't been able to
find a clear explanation of an issue with multi-user databases.

Essentially I have two questions;

1) Does the system.mdw file have any significance to multi-user
sharing of an Access 97 database other than security?
No.
2) Can any number of users open an Access 97 database using the same
account from the system.mdw without corrupting the database?
Yes. That's normal. If you create a user named say "Level2", and assign the
desired priviliges, several users can all log in as Level2 at the same time.
What I have been doing up until now is trying to ensure that each user
has a unique account in the system.mdw and that any user connecting to
the database uses the same system.mdw. If it's not necessary for each
user to have a unique account, it would be much simpler to have a
single generic user account and a single standard desktop shortcut to
the front end.
Well, CurrentUser() returns the name of the logged in user, which may be
informative if you want to do it that way, but it's not necessary and you
can get the Computer_Name from the Jet User Roster if you need it.
I can't find any resources which clearly explain the locking system in
Access. My impression is that when a user connects to the database,
an LDB file is created which contains the details of the connection.
The information stored in the LDB file as shown by the Microsoft LDB
viewer tool appears to be related to the computer name making the
connection *not* the user account from the system.mdw, so presumably
it shouldn't matter if the same account is used on several different
computers because the locking is unique to the PC name.
Rats: you're using A97. The Jet User Roster is for A2000 and later (uses
ADO), but it shows the Computer_Name, Login_Name, Connected (y/n), and a
Suspect_State code.
What *does* seem to cause problems is failing to use a system.mdw at
all; which means that several users of an unsecured database are
connecting as "admin" from the system.mdw in c:\windows\syst em32. In
terms of rights to objects, security is not of particular importance
in the databases in question.
No, there is no problem with that at all. In fact, it's a very good example
of lots of users conneting with the same log-in name. Personally I find
Access security unnecessary for most installations, and there are literally
millions of Access databases running every day without setting up security,
i.e. using the default system.mdw, so that scenario is probably the most
"tested" database setup on the planet.
Having standard desktop shortcuts which include the login account as
part of the command line would make distribution of the applications
much simpler.
Yes. And of course the system.mdw in the shortcut must be the one on the
server, so you only have one file to manage.
If anyone has in depth knowledge of how the system.mdw file and the
ldb files behave, please let me know whether the setup for these
databases can be simplified...


If you do have access to Access 2000 or later, the function below reads it
into an Access so you can examine its contents. Return value is the number
of distinct users currently connected.

Function UserCount() As Long
Dim cnLocal As ADODB.Connectio n 'Current project connection.
Dim cnBackEnd As New ADODB.Connectio n 'Connection to back end
database.
Dim rsBEUserRoster As New ADODB.Recordset 'JET User Roster for back
end database.
Dim rsTarget As New ADODB.Recordset 'Temp table to record users
and de-dupe.
Dim strPath As String 'Full path to back end.
Dim strSql As String 'SQL string.
Dim lngKt As Long 'Loop controller.
Dim dtEnteredOn As Date 'Current date and time.

'Set this to the full path of your back end database.
strPath = "C:\Data\Northw ind2003.mdb"

'Open the JET User Roster for the back end.
cnBackEnd.Provi der = "Microsoft.Jet. OLEDB.4.0"
cnBackEnd.Open "Data Source=" & strPath
Set rsBEUserRoster = cnBackEnd.OpenS chema(adSchemaP roviderSpecific , , _
"{947bb102-5d43-11d1-bdbf-00c04fb92675}")

'Clear temp table, and copy the user roster in.
dtEnteredOn = Now()
Set cnLocal = CurrentProject. Connection
cnLocal.Execute "DELETE FROM tzJetUserRoster ;"
rsTarget.Open "tzJetUserRoste r", cnLocal, adOpenDynamic,
adLockOptimisti c
Do While Not rsBEUserRoster. EOF
rsTarget.AddNew
For lngKt = 0 To 3
rsTarget(lngKt) = rsBEUserRoster( lngKt)
rsTarget!Entere dOn = dtEnteredOn
Next
rsTarget.Update
rsBEUserRoster. MoveNext
Loop
rsTarget.Close
rsBEUserRoster. Close
cnBackEnd.Close

'Get the count of the number of distinct users who are connected.
strSql = "SELECT DISTINCT Computer_Name FROM tzJetUserRoster WHERE
Connected = True;"
Set rsTarget = New ADODB.Recordset
rsTarget.Open strSql, cnLocal, adOpenKeyset
If Not (rsTarget.BOF And rsTarget.EOF) Then
rsTarget.MoveLa st
UserCount = rsTarget.Record Count
End If
rsTarget.Close

'Dereference objects
Set rsTarget = Nothing
Set rsBEUserRoster = Nothing
Set cnLocal = Nothing
Set cnBackEnd = Nothing
End Function
Nov 13 '05 #2
th********@yaho o.com (Rob Geraghty) wrote:
If it's not necessary for each
user to have a unique account, it would be much simpler to have a
single generic user account and a single standard desktop shortcut to
the front end.


What do you mean by "the front end"? Each user should have their own - if
you have multiple users accessing the same FE then this might cause
corruption.

Regards,
Keith.
www.keithwilby.com
Nov 13 '05 #3
Keith Wilby <ke*********@Aw ayWithYerCrap.c om> wrote in message news:<Xn******* *************** **@10.15.188.42 >...
th********@yaho o.com (Rob Geraghty) wrote:
If it's not necessary for each
user to have a unique account, it would be much simpler to have a
single generic user account and a single standard desktop shortcut to
the front end.

What do you mean by "the front end"? Each user should have their own - if
you have multiple users accessing the same FE then this might cause
corruption.


Why would it cause corruption? We have a stack of databases where
users open the same front end file on the server, and they don't get
corrupted all the time. The usual reason they become corrupted is
that an individual PC had a network problem and was rebooted without
exiting the application in a clean way.

Using a single front end on the server eliminates the need to
distribute the files - you only need to distribute the shortcut.
Updating the front end means changing it in one place. Loading the
front end is a little slower but on a 100Mb/s switched network the
speed difference isn't worth worrying about.

When the network was slower, distributing the front end files made
sense, especially if they were large. But with a fast network, I
can't see a reason for it.

Now before people start flaming me and saying "there's your problem",
I'd prefer to hear an explanation *why* opening several copies of the
front end from the server would cause corruption.

Having said that, as I mentioned we've had a number of databases
operating with split front end back end on the server and shortcuts on
the desktop for years - without significant problems of corruption.
The point of my original post was to figure out if the system could be
further simplified by having a single generic user account in the MDW
file, and put the account name and password into the shortcut. Since
the lock file seems to record the details of the computer connecting
to the database, not the account used, it should be OK.

Regards,
Rob

Rob
Nov 13 '05 #4
Once is sufficient, isn't it?

Darryl Kerkeslager

"Rob Geraghty" <th********@yah oo.com> wrote:
they don't get
corrupted all the time. The usual reason they become corrupted is
that an individual PC had a network problem and was rebooted without
exiting the application in a clean way.


Nov 13 '05 #5
Hi Rob. I'm no expert but the people who are say that a frontend on
each user's machine is the way to go. Tony Toews has written an
excellent utility which makes the task of distributing the frontend
child's play. You can get it here:
http://www.granite.ab.ca/access/autofe.htm

HTH.
Nov 13 '05 #6
th********@yaho o.com (Rob Geraghty) wrote:
Using a single front end on the server eliminates the need to
distribute the files - you only need to distribute the shortcut.


Using a single FE for multi-user purposes is asking for trouble, you've
been very lucky so far. The easiest way to give your users the FE is to
have your shortcut execute a batch file which downloads it to their local
drive and then opens it. They each get their own copy of the latest FE
version and will get a performance benefit too.

Regards,
Keith.
www.keithwilby.com
Nov 13 '05 #7
th********@yaho o.com (Rob Geraghty) wrote:
Why would it cause corruption?


Access updates the FE MDB/MDEs while they're in use. Things such as query plans,
filters, where clauses and such. A97 was much stabler in sharing FEs compared to
A2000 and newer.

Also to put a new FE in place on the server requires waiting until everyine is out of
it or kicking them out.

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
Nov 13 '05 #8
Keith Wilby <ke*********@Aw ayWithYerCrap.c om> wrote in message news:<Xn******* *************** **@10.15.188.42 >...
th********@yaho o.com (Rob Geraghty) wrote:
Using a single front end on the server eliminates the need to
distribute the files - you only need to distribute the shortcut.

Using a single FE for multi-user purposes is asking for trouble, you've
been very lucky so far.


Hi Keith. OK, so it's "asking for trouble", but it doesn't tell me
is *why* it's a problem. As I mentioned earlier, we've had quite a
few databases running that way over a number of years without
persistent corruption. There's also some databases which are running
in Citrix using the same file. It's essentially the same thing as
sharing the front end file on a server.

The main point of my original post wasn't about sharing a single front
end. It was about sharing a single generic account in the system.mdw
so a shortcut can be distributed to the desktop. Since the lock file
records the computer name, this should be ok. I want to eliminate the
need for the users to "login" to MS Access, which is possible given a
generic account.

Regards,
Rob
Nov 13 '05 #9
"Darryl Kerkeslager" <Ke*********@co mcast.net> wrote in message news:<Lr******* *************@c omcast.com>...
Once is sufficient, isn't it? "Rob Geraghty" <th********@yah oo.com> wrote:
they don't get
corrupted all the time. The usual reason they become corrupted is
that an individual PC had a network problem and was rebooted without
exiting the application in a clean way.


There's not much I can do in MS Access to prevent servers abending or
network switches crashing. I've had very few situations where the
database back end couldn't be repaired by MS Access, avoiding
restoring from tape.

If I was running databases on a server without nightly backups, I'd be
asking for trouble.
Nov 13 '05 #10

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

Similar topics

3
5403
by: B Love | last post by:
Hello group, this is a repost that received no responses and has since gotten burried:: I have two databases in a ssl folder on a web site. One is a shopping cart database that facilitates all transactions. The other database is used to modify product offering. One table in the Product database is typically exported to the shopping cart database to update product offering. I have only ever constructed databases with one user in mind, but...
5
1666
by: Pachydermitis | last post by:
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...
2
1772
by: marifusman | last post by:
Acees 2.0 application when user run application it give following error. The database is opened by user "Admin" on machine "abc". you can not open this database exclusively. Please help me usman
2
1969
by: Jennifer B. | last post by:
Hi Every Body: I hope this is to the right post. I apologize if I am incorrect. Could anyone please answer one or any of the following questions for Access 2003: - Maximum size of an Access database (after split) - speed of Access using a Citrix server (any server for that matter, will it affect the processing time of other database programs running
8
1950
by: David Kistner | last post by:
I'm fairly new to Access (I've worked with Oracle and MySQL in the past). I was asked to build an application for a small office and told that I had to use Access 2002. I was VERY uncomfortable with this, but went ahead anyway. So two weeks ago we rolled out the new system and I'm still wondering how robust Access is......I know it's not in the same league as Oracle, but at the same time this isn't a real big application. But I can't...
2
1869
by: Smriti Dev | last post by:
Hi, I wanted find out if it is possible to have many users access an access database and add records using forms. I'm worried their might be data corruption. I will have about 5 users using the database. Thanks for your help. smriti --
18
7342
by: Andre Laplume via AccessMonster.com | last post by:
I have inherited a bunch of dbs which are are shared among a small group in my dept. We typically use the dbs to write queries to extract data, usually dumping it into Excel. Most dbs originated in MsAccess 97 or prior and have been converted to 2003. On occassion user 1 will open a db. When user 2 opens the db it will not let user 2 modify macros and what not. I can understand this and realize we could split the db; it is not worth ...
8
2929
by: James | last post by:
Can someone explain the fundamental difference between creating a "multi user" version of an Access DB and creating a client-server Access DB? ie why can't all the users on my network just click on database.mdb and share the same database? why would I want to create a separate client/server architecture?
5
1866
by: Kip | last post by:
I have an office with approx 8 people. I have used Access with a Form on my personal PC for client records. I was wondering if I could put the Access table on a server and put shortcuts on each work station to allow users to view, update records? Thanks in advance
0
8831
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9374
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9325
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 Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8244
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, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6796
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4876
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3315
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2787
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2215
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.