Question

Creating a Multiuser Access Application by Linking Tables

Asked by: Henry_Harris

I am still unclear about setting shares and permissions for the front and back ends of an Access application that I have split for multi user access. Please does anyone of a clear procedure to follow. I am using peer-to-peer networked Vista, but I am literate enough to take the procedure into other environments, including Server 2008. I am retaining Access as the table database for the time being.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-10-22 at 04:45:43ID24834048
Tags

Access 2007

Topic

Microsoft Access Database

Participating Experts
2
Points
250
Comments
11

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Retain textbox values ?
    Im creating multiple textboxes dynamically in my class file. So every time I do a postback, these textboxes are created again. Is there anyway to retain their values ???
  2. Windows Vista Business max # peer to peer users
    Hello Does Windows Vista Business version still restrict the number of logins peer-to-peer at 10? If so, is there any way to change that? thanks techdls

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: BillDenverPosted on 2009-10-22 at 05:34:01ID: 25633316

Users need to be able to Read, Write AND Delete on both folders local (where the front end is stored) and shared (where the back end is stored).  This is required for the ldb file that is created/written to and deleted as users opena nd close the application.

 

by: thenelsonPosted on 2009-10-22 at 05:37:00ID: 25633347

First check Tools > Options > Advanced tab for Default Open Mode = shared, Default Record Locking = Edited Record and Open Databases Using Record Level Locking is checked in Access on all computers including the sever.

Then check the security settings and share settings.
For databases on network computers, go to the level that is shared. Usually that is an entire drive. Right click on it and select "Sharing and Security". Make sure "Share this folder" is selected and there is a share name that does not have a dollar sign ($) behind it in the drop down box. (The dollar sign share is a default share for administrator only.) If there is not one, add it. Select a share without a dollar sign. Select permissions. Make sure the users that will be using the DB have change and read permissions.

Then right click on the folder(s) that contain the database(s) and select "Sharing and Security". Select security. Make sure the users have read, write, modify, and read & execute permissions. Select advanced. Edit the users that will access the databases. Make sure they have create files and delete permissions.

Then right click on the the database(s) and select "Sharing and Security". Select security. Make sure the users have read, write, modify, and read & execute permissions.

All databases are heavy network users. Running a multi user Access database, all workstations should be running the XP or Vista pro version. If you have less than about five workstations, you might get away with the backend being on a system running pro but more than that or with a complicated database, you need a domain and the server running a server OS. Get up to a dozen heavy users or a couple of dozen light users and the server should be a true server and be dedicated to only serving the one database.

 

by: Henry_HarrisPosted on 2009-10-22 at 05:44:54ID: 25633430

I understand your advice and this is what I have seen in reference material. I need to be pedantic. Please clarify when specifying the share and the permissions for the folder and for the file, for both the front-end and for the back-end.

Also how should I deploy the application? Can I leave one copy of the front-end in a folder and anyone who has access to this and with the right permissions executes this one copy from their own machine, or must I copy the front-end to each user's machine?

 

by: Henry_HarrisPosted on 2009-10-22 at 05:46:36ID: 25633445

Sorry thenelson, I had already posted my comment above

 

by: thenelsonPosted on 2009-10-22 at 05:53:07ID: 25633490

Each user should have there own copy of the front end. The front end should not be shared. To simplify future updating of the front end see www.thenelson.name/#CheckForUpdatedFe.  Installing it on each user's machine allows you to place the updated front end in one special location and everyone's front end would then be automatically updated as they open the database.

Please clarify "Please clarify when specifying the share and the permissions for the folder and for the file, for both the front-end and for the back-end."  What additional information do you need?

 

by: Henry_HarrisPosted on 2009-10-22 at 06:38:34ID: 25633992

Thank you very much to thenelson. May I take a while to follow your advice. I am a liitle unclear when to sett permissions for folders and for files. I'll try out the advice and seek further clarification if necessary

 

by: Henry_HarrisPosted on 2009-10-22 at 09:09:16ID: 25635820

Now this is where I require some more clarity please, and it is very much step-by-step, using peer-to-peer Vista in this case. I have followed the instructions in the earlier post.
I have created a folder in which I have placed the back-end file.
I right-click the folder, select Share... and leave just myself as the owner, click Share and Done. There is now a share with that folder name
I right-click the folder again, select Properties, Sharing, Advanced Sharing, Permissions, Add one other user and set Change and Read Permissions to both. I then Click OK, right the way out of properties.
I right-click the folder again, select Properties, Security, Edit and then Add to add the other user, then make sure permissions are set to Modify, Read and Execute, List Folder Contents, Read and Write.
I selected Advanced and made sure that both users have Create Files and Delete permissions.
I then right clicked on the database (Back-end) and selected Properties, Security and sure the users have Modify, Read And Execute, Read and Write permissions.

Everything works fine, except I thought that when a record was open on one machine, the other user could not get at the same record. There is the circle with a diagonal line against the record in my view of all the records; again that's fine. I have set Record Locks for the form to view the record to be Edited Record. Should Access prevent the second user from accessing the record; do I have to test a control before I change a field in the record; or what.

Now I have managed the security and permissions, the real question comes to the surface.

 

by: thenelsonPosted on 2009-10-22 at 09:25:46ID: 25636017

One other sharing requirement for Vista (and A 2007):
Make sure your database is in a "Trusted Location" or no code will run. More info:
http://office.microsoft.com/en-us/access/HA102564121033.aspx

As for record locking:
One of the biggest concerns in a multiuser environment is what happens if two or more people try to change the same information at the same time.  The way that this is handled is through locking.  If you look up "lock" in Access and VBA help, you will see record locking, all record locking, page locking, optimistic locking, pessimistic locking.  99% of the time you want pessimistic record locking (editied record) or optimistic record locking (no locks).  Then the question becomes optimistic or pessimistic locking.  Access uses optimistic record locking by default in its forms.

Optimistic locking allows two or more people to edit the some data at the some time but throws an error  if they both try to save the edited data. The optimist says "It's unlikely that two people will be in the same record at the same time."  The pessimist says "Yah, right!  And most likely, it'll be my boss that's in the same record as me!!"  In our medical office, we have over 2000 patients in the database so you might think it is pretty unlikely that two people would be changing the same patient at the same time.  Until you realize that we are only seeing ten of those 2000+ on any given day.  Until I switched to pessimistic locking for the patient records, we were getting a lot of write conflicts.  I use optimistic locking for the rest of my db.

If you use optimistic locking, you can reduce the risk of write conflicts by breaking your forms up into subforms or tabs.  Records are saved when you move to a subform or another tab.  You can also put in "Me.Dirty = False" in after update events for some or all controls to save the record.

If you don't want the second person to be able to save changes to a record when someone else has not finished saving then that is called pessimistic locking.  The code below (thanks to Jim Horn if my memory serves) will notify the second person that the record is in use and by whom.  The biggest downside of pessimistic locking is the famous employee went to lunch without saving or logging off.  The computer goes to screen saver, locks and no one but the missing employee can save the record.  This can be resolved by 1: automatic logoff (of database or windows) after timed inactivity; 2: automatic save by setting the timer interval with the form's on dirty event and "Me.Dirty = False" in the timer; and/or 3: a reminder to save the record.

Function IsRecordBusy( _
    rs As Recordset, _
    Optional UserName As String, _
    Optional MachineName As String, _
    Optional CreateMsg As Boolean = True) As Boolean
      ' Accepts: a recordset and two string variables
      ' Purpose: determines if the current record in the recordset is locked,
      '          and if so who has it locked.
      ' Returns: True if current record is locked (and sets UserName
      '          and MachineName to the user with the lock).  False if the
      '          record isn't locked.
      ' From: Building Applications Chapter 12
         
          Dim ErrorString As String
          Dim MachineNameStart As Integer
         
10       On Error GoTo IsRecordBusy_Error

20        IsRecordBusy = False
40        rs.Edit                     'Try to edit the current record in the recordset.
50        rs.MoveNext
60        rs.MovePrevious
70        Exit Function               'No error, so return False.

80       On Error GoTo 0
90       Exit Function

IsRecordBusy_Error:
100       If Err = 3260 Or Err = 3197 Or Err = 3188 Then   'Record is locked -- parse error string.
110           If CreateMsg Then
120               ErrorString = Error$
130               UserName = Mid$(ErrorString, 45, InStr(45, ErrorString, "'") - 45)
140               If UserName = "" Then UserName = "(unknown)"
150               MachineNameStart = InStr(43, ErrorString, " on machine ") + 13
160               MachineName = Mid$(ErrorString, MachineNameStart, Len(ErrorString) - MachineNameStart - 1)
170               If MachineName = "" Or MachineNameStart = 0 Then MachineName = "(unknown)"
180               MsgBox "This record is being used by " & UserName & " on station " _
                      & MachineName, vbExclamation, "Record Lock Warning"
                  Err.Clear
190           End If
200       Else
210           MsgBox "Error: " & Err.Number & ", " & Err.Description & ", IsRecordBusy, " & Erl
220       End If

   On Error GoTo 0
End Function

Call the function with:
    Set rstForm = Me.RecordsetClone
    strBM = Me.Bookmark
    Set rstFormClone = rstForm.Clone()
    rstFormClone.Bookmark = strBM
    If IsRecordBusy(rstFormClone) Then
          Cancel = True
          Exit Sub
    End If

 

by: Henry_HarrisPosted on 2009-10-22 at 09:57:51ID: 31644432

This is what I call real expert advice. Many thanks.

 

by: thenelsonPosted on 2009-10-22 at 10:06:10ID: 25636442

You're welcome.  Glad to help and thank you very much for the points with "A" grade!

Happy computing!

Nelson

 

by: Henry_HarrisPosted on 2009-10-22 at 10:12:17ID: 25636505

May I ask a supplementary question.

In my code I assign a value to the record during Form Open. Then I get Run time error '-2147352567(80020009)': You can't assign a value to this object. I understand all this. However, is there a property I can test (like with NewRecord) rather than catching the issue with Error Trapping?

Many thanks again

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...