Multi-user environments
If more than one person will be using ZDN, even if just to look up a diet, then you need to set ZDN up for a multi-user environment.
Overview of process
Zoo Diet NaviGator has 2 parts: The software (ZDN_v2.4.accdb) and the datafiles (your ZDN Support Files folder). This guide assumes you are starting with the setup below. In other words, the software is located on your C: drive (not the network!) and your ZDN Support Files folder is on the network, and they are successfully connected. If you followed the multi-user installation instructions, this should already be done!
To distribute to others, you need to (1) compile the software and (2) get a copy to each person’s local C: drive.
The manual way (1-2 users)
This process is acceptable if you have only a few users and/or rarely update or modify the software. When there are updates to ZDN, you will just repeat this process.
- Go to File > Save As > Save as .accde to create a compiled version. You will get warning about graphs in older versions of Access. You can just say okay. The .accde version will handle errors better and be more stable than the .accdb version. But, you won’t be able to customize the software anymore, so don’t delete your master .accdb version!
- Give each user a fresh copy of your compiled ZDN program (.accde program only, not the Support Files folder) and make sure they put it on THEIR C drive. They should NOT make a shortcut to a file on the network drive. Every user needs their very own copy of the program on their very own computer.
The best way to distribute to multiple users is via a Windows batch file.
If you have more than a few users or make regular updates, you will want to automate the distribution process. Using a batch file has several benefits, including being able to add additional steps to the script such as making backups along the way.
A batch file is a Windows script that does multiple things. Batch files can change important files on your system (this one does NOT), so read the code carefully (it should be pretty readable even if you don’t know batch language) and make sure you understand what it does before going on.
Instructions:
- Inside your ZDN > Examples of Data Import Files folder (v2.1 and later), there is a hidden folder called “Advanced” containing a text file and a shortcut file.
- Edit the text file in Notepad or a code editor, and change the variables in the box at the top (shown below) to your own local paths and your institution name.
- Save your file and remove the “.txt” extension, leaving it as a “.bat” file.
- Right-click on the Zoo Diet NaviGator shortcut (do not open it), and select “Properties”
- Change the “Target” to the complete path to the .bat file you just created.
- Change the “Start in” to the same location, just without the filename at the end.
- Both values should be in quotes. Neither should end with a \.
- Double-click the shortcut to make sure everything is working correctly. If so:
- NaviGator should open
- A new folder should appear on your hard drive at C:\ZDN_Data
- Inside C:\ZDN_Data there will be a hidden folder called “Nutrition_Database”
- Inside that folder should be two items: A folder called “BackendBackups”, which is where your backups will live. Every time ANYONE opens NaviGator using the shortcut, a backup copy of the data will be copied to their local C: drive. You must decide whether this is acceptable data security for you or not. It is helpful for backups, but obviously there will be many copies of your data floating around (hidden, but there). If you do not want this behavior, remove those lines of the code below.
- There will also be a local (C: drive) copy of the NaviGator front end that will always be the most recent version. So, every time you (the admin!) update NaviGator in its original location, everyone will get those changes the next time they run the script as a new copy will get downloaded each time.
- Copy the shortcut to somewhere public and easily find-able by your users (shared drive, SharePoint, etc.).
- Tell everyone where to find the NaviGator shortcut. They can either run the shortcut from that location or copy the shortcut to their local drive/desktop. They should never open the .accde file directly – only the shortcut. It’s best if they don’t even know where the original file lives. Occasionally, users will move the shortcut instead of copy it and you’ll have to replace it with a new copy. That’s why you COPIED the shortcut in step 10 instead of moved it 😉
The batch file
- Don’t worry if you don’t understand the code below. You can follow along by reading the comments (marked with REM (for “remark”)).
- You can modify this for your institution’s needs by replacing the bold paths in the “Set Local Paths Here” section with the paths to your folders. All folder paths should end in \.
- To use this script, from within Access, “Save as” your database as a compiled .accde file. This is an un-editable compiled copy of the program for your users to use (they can still change diets and other animal data, just not change the program itself). If you are developing this (making changes to reports, queries, forms, etc.), then you should keep working in the .accdb version for development. Always save a copy of your edited .accdb version for your own use. When you are ready to distribute, “Save as” to an .accde file for your users to use.
REM This clears the screen and goes to an error if MS Access is not installed on the computer.
cls
@echo off
cls
REM Check that this is the path to Access on your machine. This is the default location and you should not need to change this unless you have a unique Access installation.
IF NOT EXIST "C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE" GOTO :NoAccess
REM ===============================================================================
REM ******************** CHANGE VALUES HERE! ***************************
REM ===============================================================================
REM Notes: When using this script, it is assumed that you (the developer/admin) are working and making updates
REM to the master .accdb file, and have "Save As..."-ed a COPY of this as a compiled .accde file for your users to use.
REM Location to save local (C drive) backups
set "LocalLoc=C:\ZDN_Data\"
REM Location of ZDN Support Files folder
set "SupportFilesLoc=J:\Data\ZDN\ZDN Support Files\"
REM Location of ZDN App USER master copy (on the network, in .accde format)
set "AppLoc=J:\Data\ZDN\ZDN Support Files\"
REM Name of your datafile
set "Datafile=AGreatZoo_ZDN_Datafile.accdb"
REM ================================================================================
REM ================ DON'T EDIT BELOW THIS LINE ===========================
REM ================================================================================
REM This is a cute welcoming graphic
echo +-+-+-+-+-+-+-+ +-+-+
echo W e l c o m e t o
echo +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
echo Z o o D i e t N a v i G a t o r
echo +-+-+-+ +-+-+-+-+ +-+-+-+-+-+-+-+-+-+
echo.
echo .-._ _ _ _ _ _ _ _ _
echo .-''-.__.-'00 '-' ' ' ' ' ' ' ' '-.
echo '.___ ' . .--_'-' '-' '-' _'-' '._
echo V: V 'vv-' '_ '. .' _..' '.'.
echo '=.____.=_.--' :_.__.__:_ '. : :
echo (((____.-' '-. / : :
echo (((-'\ .' /
echo _____..' .'
echo '-._____.-'
REM This creates a timestamp that is used later on when naming backup files
echo Putting on my PPE...
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
set "shortstamp=%YYYY%-%MM%-%DD%"
REM This logs each time a user opens ZDN. This can be useful if you are trying to understand who is using the software and why.
echo Hauling hay...
ECHO OPEN %fullstamp% - %ComputerName% - %USERNAME% >> "%SupportFilesLoc%Logs\zdn_userlog - "%YYYY%.log"
REM This creates the nested folders on the local hard drive if they don’t already exist
echo Chopping carrots...
mkdir "%LocalLoc%Nutrition_Database\BackendBackups" 2>NUL
attrib +h "%LocalLoc%Nutrition_Database" /s /d >nul &REM This hides the folder
if exist "%LocalLoc%Nutrition_Database\*.accde" (
del "%LocalLoc%Nutrition_Database\*.accde" >nul
)
REM This copies the frontend to the local folder.
echo Fileting fish...
xcopy "%AppLoc%ZDN_v*.accde" %LocalLoc%Nutrition_Database\ZDN.accde* /H /c /q /y /s >Nul
if ERRORLEVEL 1 goto :ERROR
cd "%LocalLoc%Nutrition_Database" >nul
REM This copies the backend data to the local folder as a backup. ZDN doesn't use it from here. You will have to copy it to the main 'ZDN Support Files' folder to use it.
echo Bundling browse...
if not exist %LocalLoc%Nutrition_Database\BackendBackups\%shortstamp%-ZDN-databackup.accdb (
echo * Backing up the data to the C drive once a day
xcopy /y "%SupportFilesLoc%Datafiles\%Datafile%" "%LocalLoc%Nutrition_Database\BackendBackups\BackupC-be.accdb*" >nul
cd /d "%SupportFilesLoc%Datafiles\Recent Backups\"
ren %LocalLoc%Nutrition_Database\BackendBackups\BackupC-be.accdb %shortstamp%-ZDN-databackup.accdb
)
REM This keeps the most recent 21 files
echo Slicing strawberries...
for /F "skip=21 eol=: delims=" %%i in ('dir /b /o-d') do del %%i"
REM This copies the backend data to the network folder as a backup. ZDN doesn't use it from here. You will have to copy it to the main 'ZDN Support Files' folder to use it.
echo Prepping pinkies...
echo * Backing up the data to the J drive every time
xcopy /y "%SupportFilesLoc%Datafiles\%Datafile%" "%SupportFilesLoc%Datafiles\Recent Backups\Backup-be.accdb*" >nul
cd /d "%SupportFilesLoc%Datafiles\Recent Backups\"
ren Backup-be.accdb %fullstamp%-ZDN-databackup.accdb
REM This keeps the most recent 9 files
echo Delivering diets...
for /F "skip=9 eol=: delims=" %%i in ('dir /b /o-d *.accdb') do del %%i"
REM These lines navigate to the folder and open the database. To the user, it just looks like they opened the database.
echo Ready to feed some animals!
start %LocalLoc%Nutrition_Database\ZDN.accde
TIMEOUT /T 10
goto :EOF
:ERROR
ECHO "Oops - Can't find NaviGator."
ECHO "Please tell your ZDN admin you got a J drive error."
pause
:NoAccess
ECHO Oops - No copy of MS Access detected!
ECHO.
ECHO Please tell your ZDN admin that computer '%COMPUTERNAME:~-4%' is missing Access.
ECHO.
ECHO.
pause
:EOF
You must be logged in to post a comment.