Access Citrix Instalation

I know this is a longshot since I'm posting in an Access forum but I promised my IT person I would ask for input.  I have installed an Access 2003 application on the clients network.  The front end is an MDE and the data backend is an MDB resident on the server.  The installation is handled by Sagekey.

We have dozens of clients set up with this same configuration.  In those cases each user has a copy of the app on their local machine and the data is resident on the server.

Half of the user for the new client are set up in a similar manner, local copy on tier machine, linked to data on the server.  Those users are fine.   However, this client also has a satellite office with the other half of the users.  The satellite users come into the system using Citrix.  I don't know Citrix and I am not a communication person but I'll try to relay this as best as I can.  As explained to me, on the cirtix side there are two servers the users come in to one or the other.  Our application is installed on each server, one time.  That means that multiple Citrix users are using the same MDE.  A a rule we offload as much as possible to the clients and use local tables to process the selected data.  As you might guess, with multiple users using the same MDE, the local tables aren't functioning as they should. If 2 users are using the same local table in the same MDE their data becomes intermingled and the results are incorrect.

My first suggestion was to install a local copy on each machine of the satellite users.  The IT person is hesitant to do this because he feels having them connect thru a VPN (whatever that is)  would not provide adequate response.

My question:  Have any of you EE'ers installed you apps in similar circumstances?  If so, what kind of architecture did you use for the remote users?
Who is Participating?
Gustav BrockCIOCommented:
We have done this with Access 2010 on Windows 7.

The trick was to launch the app from a shortcut on the user's virtual desktop. This runs a VB script that creates the local folders and copies the frontend from a shared read-only folder to the user's local "machine" on the hidden drive C in the user's AppData folder (which is recreated from scratch each time the user logs on), say:


After a successful copying, the script launches the application in runtime mode.

This worked at the first attempt because the user has full rights to the AppData folder.

Eric ShermanAccountant/DeveloperCommented:
I agree, the method that Gustav posted above is the most common and practical approach.  However, I have a client that had the same requirement and their IT dept. did not want to use the Citrix or VPN methods.  Since the F/E was Access and the B/E was MySQL, I gave them the option to change the application a bit such that it connected directly to their MySQL server (when needed) using ODBC rather than linking all the tables at one time as this would degrade the performance for remote users.  Then distribute a desktop Access F/E with the Runtime version of Access using an Inno installation script.  This also included a function to download the latest version of the desktop app from their internet server whenever a modified version was published.

The advantage was, I did not use linked tables to the MySQL server.  I used all Pass-Through Queries that included the necessary ODBC Connection string at the time they were run.  Same with data entry, I used ADODB connections to update recordsets and released the connection when finished.  Any laptop running in the field that had an internet connection could run the Access app with pretty much the same performance as the users back in the office.  I was amazed at the performance to be honest.

Just another approach ...

mlcktmguyAuthor Commented:
Thanks you for the suggestions,  I passed Gutav's response on to the IT people and they are working thru it.  With some modificaton since we have a Sagekey installer.  Sagekey takes care of putting the runtime on the machine and setting up everything to run.

MY suggestion was to adapt Gutav's approach putting an Icon on the users desktop that points to the Sagekey installer on the server.  They would use that to get into the app.  It would refresh/reinstall each time they entered but that's not a big issue since they only log on once a day.  This would also ensure that they always had the most recent version of the application.

The IT people said it failed because the user did not have adequate authority to install and the are reluctant to give it to them.

I suggested setting the 'Run as Adminstrator' property of the desktop icon so they owuld have authority.  I heard that is giving issues also but haven't gotten the specific yet.

Any ideas on your part Gustav?
Gustav BrockCIOCommented:
The trick is that you don't "install" anything. A proper Access (runtime) must already be present and for that you use the SageKey installer but any other method could be used.

Then, what the user does, is a simply copying of the accdb file to the user's AppData folder and creating a shortcut on the desktop. It takes very little in a Citrix environment as these are often quite heavily powered.

It is certainly doable. My client is a 40000+ employees retail organisation with very strict security due to the vast count of geographical locations.
They do have Access 2010 installed for the relevant employees, so the shortcut launches the application with the /runtime switch.

I had foreseen al sorts of trouble and struggling with the Citrix admins (for a good reason because I understand the caution about security) and had prepared the group I work for, so I earned a lot of credits having this functioning at once.

mlcktmguyAuthor Commented:
Gustav, thank you so much.  This was becoming a huge problem.  I have a lot of Access experience but I am lost in the communication/network world.  The IT person really had no idea how to resolve this but we implemented your suggestions and the application is operating as it should for multiple users in the Citrix environment.
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.

All Courses

From novice to tech pro — start learning today.