Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Microsoft Access Multi-User Application questions

Posted on 2014-09-16
6
Medium Priority
?
291 Views
Last Modified: 2014-09-16
I have been considering writing an application for collecting labor from our plant floor.
I would like to write this application using MS Access 2010.  It would be deployed to about 25 workstations as an .accdr file along with MS Access 2010 runtime.
I would like to store the data tables in an SQL Server database, linking to them using ODBC.
Basically it would collect 4 types of transactions:

   1)  Clock IN time for the day.
   2) Clock ON time for jobs.
   3) Clock OFF time for jobs
   4)  Clock OUT time for the day

Each worker has a unique badge ID and would be entering their own data.  They will all be appending to and updating the same tables but no two workers will ever be updating the same record in these tables because of the unique badge ID.
My concern is at the end of the day when everyone clocks OFF of jobs and OUT for the day on these multiple workstations simultaneously.  Is there going to be problems caused by multiple users appending and updating these tables at the same time?
Any thoughts or suggestions would be appreciated.
0
Comment
Question by:dsoderstrom
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
6 Comments
 
LVL 58

Accepted Solution

by:
Jim Dettman (Microsoft MVP/ EE MVE) earned 2000 total points
ID: 40326010
Short answer: even with linked tables using ODBC and Access "as is" (binding forms to tables), no.

Jim.
0
 

Author Closing Comment

by:dsoderstrom
ID: 40326109
Wow, that was a short answer!  But it was also the one I was hoping for.
Actually I will not be binding any forms to these linked tables either.  All of the updates and appends will be done using the "Docmd.Runsql"  method in vba.
Thanks for your input Jim.
0
 
LVL 75
ID: 40326330
""Docmd.Runsql"  method in vba."

Let me suggest you use this:

CurrentDB.Execute "YourActionQueryNameOrSQL", dbFailOnError

With, you can trap error you would want to know about, and no DoCmd.SetWarnings True/False is necessary.

Example:

Function mCurrentDbExecuteSeveralQueries()

Dim X1 As Long, X2 As Long, X3 As Long
On Error GoTo mCurrentDbExecuteSeveralQueries_Error

With CurrentDb
      .Execute "YourActionQuery1", dbFailOnError
       X1 = .RecordsAffected ' tells you how many records were processed - This is optional
      .Execute "YourActionQuery2", dbFailOnError
       X2 = .RecordsAffected ' tells you how many records were processed
      .Execute "YourActionQuery3", dbFailOnError
       X3 = .RecordsAffected ' tells you how many records were processed
    ' and so on ....
End With

mCurrentDbExecuteSeveralQueries_Exit:
    Exit Function

mCurrentDbExecuteSeveralQueries_Error:
   ' Your error handling code here
Resume mCurrentDbExecuteSeveralQueries_Exit

End Function
0
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

 
LVL 58
ID: 40326667
Please follow Joe's advice on the CurrentDB().execute.

Also, as with any BE other than JET, you are better to push as much as possible server side no matter how many users.

Now with ODBC and linked tables, JET will look at the SQL being executed and if possible, push it server side for you.   But it can't do that if you join to local tables, use VBA expressions, or JET specific SQL.

So keep that in mind when working with your queries.  Also, if you can make a query pass through, then do so.  Also don't forget you can use views in SQL as "tables" in your app.   Again, that leaves a lot of work server side.

With 20-25 users, you can use Access "as is" without issue really, but all I'm saying is "you can do better than that" and if at all possible, you should.

Jim.
0
 

Author Comment

by:dsoderstrom
ID: 40326721
Great advice which I will follow.  Thank you both.
One thing caught my eye though.  Jim, you referred to JET.  I was under the impression that MS Access no longer used the JET engine starting with version 2007.  Apparently I was misinformed.
0
 
LVL 75
ID: 40326854
JET became ACE (Access Connectivity Engine) which became ... humm, not sure now (some similar name). But ... at the end of the day ... it's still JET .
0

Featured Post

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Windows Phone Theme Colours is a tight, powerful, and well balanced palette. This tiny Access application makes it a snap to select and pick a value. And it doubles as an intro to implementing WithEvents, one of Access' hidden gems.
Traditionally, the method to display pictures in Access forms and reports is to first download them from URLs to a folder, record the path in a table and then let the form or report pull the pictures from that folder. But why not let Windows retr…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question