Question : Change table source for queries based on user or machine access

Experts:

I have two sets of users at my company.  Users in set A have access to ODBC drivers to get link to the source machine that has the raw data that all of my queries and reports are based on.  Users in set B do not have ODBC access and require text imports of data to local tables (not realtime, slower).    I have setup the processes for the users in set B to and the imports happen as they should.

At the moment, I am maintaining two separate databases with identical forms, reports, etc. except that, for example, in set A the customer table is defined as an odbc link and in set B the customer table is an actual table of data which resides in the file.

I have the ability to determine which group the user is in based on their ip address.  I could base the solution on thier ip address.

I have dozens of queries that are based on dozens of tables which are named identically in the two databases.  In addition, many of the queries are 'chained together' - i.e. query test3 is based on query test2 whcih is based on query test1 which is based on data from 6 tables which are all ODBC tables in Set A and which are all regular tables in set B.  


Rather than having two separate databases, is there a way to manipulate my queries to change the tables they are based on depending on the machine.  

I thought of using Union queries - i.e. renaming the customer table through odbc customer-odbc & renaming the customer table from the non-odbc version customer-non-odbc in the same file.  Then creating a query called customer as a union query, but the union query will fail on the non-odbc machine when it attempts to execute and would be a slow solution even if it did.

Additionally, since the users do not have the ability to change the queries permanently (they are databases which are being used in a multi-user enviornment), I do not want to write changes to the database in real time because that could affect the next user.

Any help would be appreciated,
Joe

Answer : Change table source for queries based on user or machine access

Hi Joe,

in principle you can do already now a single-source policy:

A. You maintain one seperate developerversion.
In that developerversion you implement a VBA code for "deploy"
this code produces automatically the A and B version (it will be a little bit tricky but i think its possible)

B. You put a code in the autoexec-macro, which looks for some local resource (e.g. a registry-entry for correct odbc setting, or most simple a local textfile ) to determine which links the tables have to get and set them automatically.

C. You make it completely flexible by putting the individual apropiate paths to a localdata.mdb from where at startup the backend-tablelinks are automatically set.

Regards, Franz

Random Solutions  
 
programming4us programming4us