Brett Barabash
BBarabash at TappeConstruction.com
Mon May 3 16:07:09 CDT 2004
If you choose to determine their current app version by checking for the existence of a file (e.g. DbName_FE_1.mdb), then yes, you wouldn't need to keep track of updates in a table in the launcher mdb. That way or my way, doesn't really matter, they'll both do the job just fine. Here's why I said that Jürgen's statement about performance didn't apply: - He was comparing checking for a file's existence, vs. opening a copy of the FE mdb to check a database version property. - I was comparing checking for a file's existence vs. retrieving a record from a table. Performance wise, you are looking at no tangible difference if you lookup the value from a table instead of looking for a file on their hard drive. (unless you get all bent out of shape about performance differences of < .01 sec). IMHO, the only valid consideration is choosing the solution that is the easiest to implement, maintain and deploy. I'll leave it to you to decide what works best for you. Off the top of my head, I would guess that the easiest way to keep someone from directly opening a FE on the server would be to check the CurrentProject.Path property at startup (AutoExec). If it is anything other than your app directory, kick them out. -----Original Message----- From: Mitsules, Mark S. (Newport News) [mailto:Mark.Mitsules at ngc.com] Sent: Monday, May 03, 2004 3:07 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Deployment Woes How do I handle the situation where someone opens the server copy of the FE directly? Brett, There is no doubt that I am confused;) But here goes... >> I don't see a reason why you need to even use batch file << I agree, I'm re-working it accordingly. >> Jürgen's statement doesn't apply << -Jürgen...please correct me if I'm wrong, but I disagree. For example...the launcher app contains a version record "2", and the filename of the local FE is "DbName_FE_1.mdb". Since Instr(strFileName, strVersion) = 0, I update the FE. If I use this method I see no reason to store a table of workstations and the latest installed FE...or am I missing something? >> recap << Except for the version checking...exactly. >> ONE application open at a time << Excellent...thank you for clarifying this. Mark -----Original Message----- From: Brett Barabash [mailto:BBarabash at tappeconstruction.com] Sent: Monday, May 03, 2004 2:07 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Deployment Woes Mark, First of all, I don't see a reason why you need to even use batch file. All of the file copy operations are already built into VBA, and you can write a quick 'n' dirty routine to do it from there. Jürgen's statement doesn't apply in this case, since you already stated that you want to use the mdb file as the launcher. In this case, the database is already open. The difference between checking for a file and pulling a record from an update table is of no consequence to the app's performance. I am still assuming that you don't want to change the user's workstation paths, which is why I gave you sample code to support this. If changing their shortcuts is an option, you could use my batch file approach. Quick, simple, easy to maintain, updates are as simple as changing the version number in the batch file. I really don't want to start a turf war about the "best" way to do this. To each their own. It just seems that you are confused as to what you are trying to accomplish, and I'm just trying to nail down the best solution that will suit your needs. Again, to recap what I had in mind in my previous message: - User starts launcher, located at your existing server location. - Launcher checks workstation record in it's table to determine if it exists/is up to date. - If necessary, Launcher copies the newest FE files to workstation, and logs version number in its own table. - Launcher shells out to launch FE mdb file stored on workstation, and closes itself e.g.: Shell "C:\Program Files\Microsoft Office\Office\MSACCESS.EXE c:\myappdir\myapp.mdb" Application.Quit This results in ONE application open at a time (except for split second between the Shell statement and the Application.Quit statement). <snip> -------------------------------------------------------------------------------------------------------------------- The information in this email may contain confidential information that is legally privileged. The information is only for the use of the intended recipient(s) named above. If you are not the intended recipient(s), you are hereby notified that any disclosure, copying, distribution, or the taking of any action in regard to the content of this email is strictly prohibited. If transmission is incorrect, unclear, or incomplete, please notify the sender immediately. The authorized recipient(s) of this information is/are prohibited from disclosing this information to any other party and is/are required to destroy the information after its stated need has been fulfilled. Any views expressed in this message are those of the individual sender, except where the sender specifies and with authority, states them to be the views of Tappe Construction Co. This footer also confirms that this email message has been scanned for the presence of computer viruses.Scanning of this message and addition of this footer is performed by SurfControl E-mail Filter software in conjunction with virus detection software.