FE on Local or Network drive???

Reflex_ht

Registered User.
Local time
Yesterday, 20:45
Joined
Sep 11, 2012
Messages
64
Hallo,

Eveywhere on the Net I read that the bast way to run a MS Access application is to split it and to save the BE on a network and the FE on a local PC.

OK.

I have a application that is splitet from the begining but at the first months it was runing FE and BE from a network and i had no problems with that.

Now I made a automatic update funktion for the FE and of course one FE can´t be used by more than one user. At first the FE was saved on the local PC of the users reading the tables over linked tables from the BE stored in the network. It hapens that one user that uses hes privat laptop at work witch has the same settings like the company PC-s was runing the application very (I mean very very) slow :( I like trying more solutions for everihting I do so I just run the FE on that laptop from the network and it had the same speed like the others ???? Why that when everyone says that it should go the other way faster??? Its not a problem for me but i got little confused :(

A notices also a other thing: when all users open the same FE from the network thay can work with the data very easy. Now that i split the FE in more and thay use they'r own FE´s it hapens sometimes that records arent shown to the other users, simultaniouls working is harder, deleting records also make some curious things. I had much les problems and much more speed runing the application the OLD (WRONG) WAY :confused:

OK. The lower speed could also be because of adding two tables to one :rolleyes: but the example with the privat laptop showed me that there are some things that can slow or speed up the application withoud changig enithing but the position of the accdr file withc is used as FE.

P.S.
Because the app runs on a network faster I made on the network a folder for each PC (there are just 5 and there wont be more) and in every one is a bat file that runs the update. The folder names are the PC names of the users. In the FE is a funktion that shedulles the bat file for a update. The path to the bat. file has a variable (the last folder name) and because it has the name of the user PC I just determin his value with the Environ("COMPUTERNAME") funktion.


Now the question :)

What can i do to make the app faster. It works just with one table (big) (about 20 000 records) where the users insert and edit records. The table dlookup values forom other tables and saves them in the main table. Linking tables is no solution because other tables are changig very often and that could delete data in the main one. Working with linked tables has for me no benefits (for now). We'r also waiting for a SQL server to be installed. That should make it also a bit faster :D
 
Access FE's should be located on each local computer unless you enjoy brain surgery. Period.

There are posts here about a FE AutoUpdater tool that deploys out the new FE when changes have been made. I rolled my own FE updater using NT Batch code, RoboCopy, XCopy, and so on. (RoboCopy from the server to a test copy location. If RoboCopy is successful, then XCopy over the production FE file. If RoboCopy should fail, or or or... at least users have their old copy of the FE intact, so they could go to Access and open the DB from the recent file history list.)

Using RoboCopy and the shell game I came up with, unless there is an FE update, the FE is NOT copied each time the application starts. Works PERFECTLY over the VPN!! :cool: The cached copy of the FE is used to refresh the file that actually gets used.
 
Updating is no problem. It makes it selfe when i say in the BE that there is a new version. In every FE version is a value that determinates witch version it is ( 1.9 or 2.0) if the value in FE dosn´t match the value in the BE the FE runs a bat. file that has a xcopy function that overwrites the old version with the new one...and so one...

The problem is that when I save the FE on the local machines it becomes much slower :( If I save it on the network it runs much faster. Why that?

The FE uses 2 BE-s. One are tables from a SQL server and the second is a accdb file with 4 tables (one of them is the main "big" table ;) ).
 
The problem is that when I save the FE on the local machines it becomes much slower :( If I save it on the network it runs much faster. Why that?

That makes absolutely no sense. I would suggest perhaps stepping through the code as it executes and look for sources of delay.

Also note, Access edits the FE file when it runs. Using the "shell game" method I described prevents unnecessary copy operations of the FE from the network drive.
 
Yes id doesn´t make sense :( Because of that I´m posting here. The best part of it is that it slows donw on one PC but not on the others :confused: maybe by the others are also speed changes runing it from local or network but I could´n notices anythign that you could see with human eyes.

The schell runs a bat file. Sometimes it hapend that the FE didn´t close fast enough and the update failes. U just put a countdown in the bat. file that waits 5 seconds (enough for the FE to close) and it runs then the xcopy funktion. The shell funktion is call only when i comand it from the BE. Sometimes its 5 times a day adn sometimes 1 time in a week ;)
 
The schell runs a bat file. Sometimes it hapend that the FE didn´t close fast enough and the update failes. U just put a countdown in the bat. file that waits 5 seconds (enough for the FE to close) and it runs then the xcopy funktion. The shell funktion is call only when i comand it from the BE. Sometimes its 5 times a day adn sometimes 1 time in a week ;)

No no no no no...!!!!

An icon on the desktop should run an NT Batch Command (.cmd) located on the server in the directory the master FE exists in.

That .cmd should prep a directory on the workstation, RoboCopy / XCopy files, and finally launch the deployed database file on the workstation drive.

Then the .cmd should end and Access should be running a fresh copy of the FE DB.

No timing madness!

When you do what in the BE?

The BE should have NO VBA in it. It should just contain tables.

I set a version string in the FE and BE, they must match, else the application will not start up, instead display an error message showing the BE/FE versions. But that does not involve VBA code in the BE DB, it is a version string stored in a configuration table.
 
The BE has no VBA. It has just a table with the rows ID,VERSION and KICK. In VERSION (a simple string that determinates the version number, like 2.2) i put the newest version of the FE. The runing FE checks every 2 min if it matches with the value in the VERSION field.... the KICK has always the value 0. If i set it to 1 it kicks all users from theyr FE-s so I kan work on the BE :D

I can´t make update funktion that can be started from the users because...they just don´t want to think about that. I can´t make it to update on starting the app because they start it just one time in the week and never close it. There for it is made to check for new versions every 2 min. Sometimes they just go home and let the app open. Next day they just kontinue. I know that access is not made for 24/7 apps but, what can i do. I rather adapt my app to them than them to my app (mutch eseyer ;) ). There is just one lack - the 2 min funktion is called only when the app has focus on windows :( if they lose focus for the app nothing will hapen :( But they use 90% of the time my app and ofcourse I wont tell them that issue ;)

Sorry, but thath things with .cmd a realy don´t understand :( I made this with the update bat. a couple days ago. First time I´m working with batch files. But the batch file has of course a funktion that runs the new FE after it copies it over the old one.

There was also a solution to kill the MS Access proccess with the bat file (in task manager) and then copy the new FE and then open the new FE. Unfortunately our company uses two Applicaton writen in Access. The other one is buyed years ago (long story ). But I don´t want to mess with the other application runing in MS Access :(

If the batch file errors or don´t copy the new FE the user can´t start the app and I become a call on the phone ;) and i just run the batch file on the network here from my place.

I would like to bether understand that cmd. "thing" I don´t even know what that is. Is there any treath, link or something good on the net so i can learn something about it :D

THX for you replays :D
 
I have taken various snips from what you wrote...

The runing FE checks every 2 min if it matches with the value in the VERSION field....

I can´t make update funktion that can be started from the users because...they just don´t want to think about that. I can´t make it to update on starting the app because they start it just one time in the week and never close it.

Sorry, but thath things with .cmd a realy don´t understand :( I made this with the update bat. a couple days ago.

There was also a solution to kill the MS Access proccess with the bat file (in task manager) and then copy the new FE and then open the new FE.

OK, On some sort of a timer, perhaps a hidden form that is stared and left running all of the time in the background, check the BE version and see if it still matches the FE version. If not, the take the application down.

Perform your software distribution still through a custom Desktop/StartMenu application icon tied to the NT Batch Script I already described. Or the AutoUpdater project that is mentioned in other posts on this forum. Perhaps you do not need to learn NT Batch scripting language to make use of that solution.

This application is totally independent of any other Access application as I have described the scenario. You will have no lateral version intermixing to deal with.

You should do a version check as the application starts and if it is not matching the BE, then display a message and Exit! That way people can not seek in via starting stand alone Access and opening the FE DB from the recent file list.

The .cmd extension is a true NT Batch Script. .bat is the extension for a DOS Batch Script, which may end up getting processed by legacy DOS support. Best to name the file name with a .cmd extension.

I think I addressed all of the points I snipped out of your text.
 
Hy,

Thanks for the reply.

Can you help me for a other problem.

I should make a app that sends status info for one of our customers. We tryed it with email but that just made to mutch emails in ou rboth inboxes. Now we try it with they´r FTP server.

So, I already made a batch file that sends the needed xml file to the server. Now: Is there a way to run that batch file every 60 seconds?

It is possible to make that with access, but i think that it would be bether to run it with something bether :)

THX
 
It is possible to make that with access, but i think that it would be bether to run it with something bether :)

From the command line, configure an "At" job: Window's built-in task scheduler.

Years ago (Windows 2000) the At jobs would "die" when the computer went in/out of daylight savings mode. Hopefully MS has fixed the bug by now.

at (Windows)
http://en.wikipedia.org/wiki/At_(Windows)
 

Users who are viewing this thread

Back
Top Bottom