How to share access 2016 database with multiple user - database

I migrated my access 97 databases to access 2016 & want to share the database with multiple users having READ/WRITE simultaneously. I kept MS Access 2016 in shared mode and my database in NTFS shared folder in my network.
Even Access is in shared mode when one user is trying to save their changes i am getting this error
Microsoft Acess can't save design changes or to save to a new database object because another user has the file open. To save your design changes or to save to a new object, You must have exclusive access to the file
Suggest me how can i share the database
Thank you :)

Development/Design cannot be shared on the same file. There are steps that need to be done to accomplish this if you have more then 1 developer.
If you are having multiple users update data in the database, split your database using the Database tools > Access Database (Under Move Data tab). This will ask you where you want to save the backend of your file. Choose the file path where you want to save the file.
Take the front end and either email to all your users, or place in a folder location on the share drive for everyone to copy the front end to their desktops.

Related

How can I use linked local files in ms access over network?

I've an access db that have linked pics and PDFs in tables(I'd aware of db size limitation,thus I'd linked them).when I run db on creators PC (me) it can load files in eg: c:\files\file.PDF because it's there. But when I share db to other users on network they can't see files because they Dont have c:\files\file.PDF on their machine.
How can I solve this which users can see attachments?
I don't want share files and manually update their files
Thank you
Use a network share rather than a file path when you set up the links.

SQLite attach all databases in a directory

Hi I have an sqlite database called 'main.db' where I attach all the databases that are in the directory 'db' (e.g. 'db/db1.db' , 'db/db2.db' and so on).
I would like to know if there is a way to save 'main.db' so that the attachements are remembered across sessions.
Also when in 'main.db' how can I create a new database 'db/db3.db' and have it attached automatically when I open 'main.db'?
I usually use the sqlite3 shell for my databases maintenance.
Attachments are not stored in the database; they are local to a connection.
Any attachments must be done explicitly by the application that has opened the database.

Error on attempting to import data from Access to SQL Server

I am trying to import data from an Access 2003 mdb database using OpenDataSource with the ACE OLEDB driver. I'm getting this error:
Description: OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Cannot start your application. The workgroup information file is missing or opened exclusively by another user.".
I have no idea what it's talking about, and my internet searches have not helped. They all refer to linked servers, and anything I've tried has done nothing to fix the problem. What does this error mean, and what do I need to do to fix it?
The sproc which does the importing is called from an SSIS package, which goes through a table of file locations and calls the sproc for each of them. I just discovered that the package ran for about half an hour, getting about 80 files imported, before it began throwing this error. I have as yet been unable to find any difference between the files that worked and the ones that didn't.
From Understanding the role of workgroup information files in Access security:
The workgroup information file is a required component when you use a
Microsoft Access database (MDB). This file is required for both a
run-time installation and a full installation of Microsoft Access.
This file is an important component of Microsoft Access security.
If you develop database applications, it is important that you have a
good understanding of the workgroup information file. It is a good
idea to reserve the last phase of the development process for applying
security in Access. Until then, you can develop the database
application in an unsecured database.
A workgroup is a group of users who share data in a multiuser
environment. When security is implemented on a database, the user and
group accounts are recorded in the workgroup information file. User
passwords are also stored in the workgroup information file.
IMPORTANT: If you establish Access security in a database, Microsoft
recommends that you store a backup copy of the workgroup information
file in a safe location. If the file is lost or damaged, the only way
to recover the workgroup information file quickly is to restore the
file from a backup copy. If you do not have a backup copy, you must
re-create the User and Group Accounts with the same Personal IDs that
were originally assigned. If the new workgroup information file is not
created exactly as the original file, you will not be able to open the
database with the workgroup file.
Access uses the workgroup information file even when the database has
not been secured. The default Admin user account, which is stored in
the workgroup information file, is used to open all unsecured
databases. If you assign a password to the Admin user, you will
receive a logon prompt when you reopen the database.
The Access database that SQL Server is trying to access is being used by another user. Go to the folder where the database is stored. With Access 2003, the database file itself will end in 'mdb'. If there is a file with the same name but ending in 'idb', it signals that there is a user currently using the 'mdb' file. Have the user exit the database and then run your package. If you can't find the user using the file, make a copy of the file in another folder and edit your SSIS package to reflect the change.

Access 2007 - accdb; options in setting up a reliable multi-user environment across multiple servers?

I am having trouble sorting through all the information / various options in regards to Access 2007 used in a multi-user environment. Here is a brief description of my current situation. At work there is the "Business LAN" which I can log on and use to monitor two other servers via remote desktop. The business LAN is strictly controlled by our IT department and no one is permitted to install any software or drivers without their consent. I do have administrative privileges on both servers though.
The two servers that I log on to using RD are used for essentially the same task, which is to monitor and control the heat to different process lines. Each server runs a different program to accomplish this task but both programs use SQL Server as a back end.
I created two access databases (one on each server because they are currently behind seperate firewalls) in order to query information from the backend SQL side of these programs and combine it with relative information I have compiled in tables in order to add more detail to the data the programs are collecting. My program is still in the debug stage but ultimately this information can then be accessed by field techs / maintenance in order to make their job easier. Maintenance staff can also add even more information based on the status of repairs etc....Last, I have created reports which can be run by Managers / Engineers who are looking for an overall status of their area.
Both access db's are split so that the back ends are seperate from the forms, queries, etc... I use an ODBC data source to import a link to SQL. I am using vba for user authentication, user logging record updates, and user / group access control. Everything works the way I intended except the fact I everyone who logs on the server will be trying to run the same copy of the front end. For example, I had a co-worker log on to the server via RD to test the program and I logged on from my desk. After logging in I could see the forms he had open. Access was already running. Without being able to install access locally (or even runtime, due to IT restrictions) on to each individuals workstation, I'm not sure what approach to take to resolve this.
Additional info, Server 1
One of the servers is considered to be the "master server" in which a number of client stations "slave servers" all communicate with. The only way to access folders on themaster server is log on to the client station and run RD.
Server 2
This server is considered to be the "historian". It communicates with a terminal server in which users log on using RD and run applications which use SQL backend which resides on the historian. I have been able to set up shares so that certain folders are visible on the historian from the terminal server.
Can anyone tell me what my best option is?
Thanks in advance.
CTN
It's really crazy the way some IT departments do everything possible to make it hard to do your job well.
You allude to users logging on via Terminal Server. If so, perhaps you can store the front ends in the user profiles of their Terminal Server logons? This assumes they're not just using the two default admininstrative Terminal Server logons, of course.
The other thing that's not clear to me is why you need a back end at all in Access/Jet/ACE -- why not just link via ODBC to the SQL Server and use that data directly? The only reason to have an independent Jet/ACE file with data tables in it in that scenario is if there is data you're storing for your Access application that is not stored in the SQL Server. You might also have temp tables (e.g., for staging complicated reports, etc.), but those should be in a temp database on a per-user basis, not in a shared back end.
Here is a suggestion how to implement what David Fenton wrote: write a simple batch script which copies your frontend from the installation path to %TEMP% (the temporary folder of the current user session) and runs the frontend from there. Something along the lines of
rem make sure current directory is where the script is
cd /d %~d0%~p0
rem assume frontend.mdb is in the same folder as the script
copy /y frontend.mdb %temp%
start %temp%\frontend.mdb
Tell your users not to run the frontend directly, only via the batch script, then everyone should get his own copy of the frontend. Or, give your frontend a different suffix in the installation path and rename it to "frontend.mdb" when copying to %temp%.

multi server framework suggestion needed

Example, I have 2 server, each server using a copy of linux cpanel.
I first install free trial script into subfolder reside in Server A.
eg:
sample.com/service/username1
sample.com/service/username2
sample.com/service/username3
Then when people decided to upgrade, I gonna move all files to theirnewdomain.com, including database etc into Server B (another copy of cpanel).
In such case, what is the best suggestion to perform this kind of upgrade?
Move files from serverA to ServerB, possible to automate it? Zip it into a common place for Server B to pickup?
Moving mysql db created in ServerA's cpanel into ServerB's cpanel, best way? Recreate a copy into ServerB, then dump data into the fresh copy?
Seems like not possible to directly modify the db pointing in cpanel database, because its now 2 server, each server got a copy of cpanel. Things are separated.
Note, this process need a few task to be done in the process. Eg: update to centralized database of the file moving status, domain creation status, db creation status, and etc...
Any idea?
How actually other service that host in multi server work?
In general, you probably want to follow the pattern of running a backup script and then extracting it on the new server. You may find some hints in this description of a manual process.

Resources