I have chosen another approach for the next situation.
There is an Excel database, let say DataBase.xls and an Excel template Programs.xlt, both are not shared and resides on a directory of a network server/disk. Each user uses a copy of the programs template, so Programs1.xls for the first user and Programsn.xls for the n-th user.
The rules are:
. many concurrent reads at the same time are possible
. only 1 write is possible without concurrent reads (in order to avoid reads of "half" updated records)
. the read and write actions are standardised and kept as short as possible
The solution I have chosen is a Referee/Umpire/Arbitor/Arbitrator - I called it Referee.xls.
It is a shared excel file and resides in the same above mentioned directory and is very small : it only consists of 2 fields - a read counter nRead and a write counter nWrite.
Every user who wants access to the DataBase sends the referee a read or write request.
In case of a read request, the referee checks/waits until there are no write actions (anymore) (nWrite=0) and then grant a read for that user by increasing the nRead counter by 1. After a read action is completed, the nRead counter is decreased by 1.
In case of a write request, the referee checks/waits until there are no more write actions active (nWrite=0), after that the Referee checks/waits till all read actions are done (nRead=0) and then grant the write request and set the nWrite counter to 1. After the write action is done the write counter nWrite is set to 0. After that the referee can grant new read and/or write requests. The waits are implemented with the "Sleep" function in Lib "Kernel32" with steps of 1 second (1000 milliseconds). The steps are also counted and after 6 steps/seconds a read request is timed out, a write request is timed out after 10 steps/seconds, but this heavily depends on many factors and should be found in practice.
This all works very nice in an Excel 2003, Windows XP environment with maximum 14 concurrent users. These users are managers working in different places spread over an area of 5000 square kilometers and use the tool every day for updating Medical Competence Information, Personal Information, Appointments etc. for their employees (avg 15 employees per manager)