Microsoft Access Multi-User Application questions

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.
dsoderstromAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
Short answer: even with linked tables using ODBC and Access "as is" (binding forms to tables), no.

Jim.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
dsoderstromAuthor Commented:
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
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
""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
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Jim Dettman (Microsoft MVP/ EE MVE)President / OwnerCommented:
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
dsoderstromAuthor Commented:
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
DatabaseMX (Joe Anderson - Microsoft Access MVP)Database Architect / Systems AnalystCommented:
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
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.