So you've got a networked database and you need an easy way of deploying customised desktop shortcuts for it to your users. Here's a cunning method.
The basis for this method is the use of Visual Basic scripting in the form of a VBS file - saves you having to build a setup.exe file or anything strenuous like that. Now VBS files have had something of a bad press, mainly because script-kiddies have used them to write viruses. Don't let that put you off.
Anyway, create a file in the text-editor of your choice and name it something intelligent like install_production.vbs - note the extension. Now the script shown below does the following:
- Prompts the user to confirm their database username - since I use the user's Windows username for their database username, this is shown as the default response. If you're not using user-level security you can skip this step.
- Creates and names the shortcut, checking the Registry to look-up the location of the user's version of Access (you can hard-code the Access executable's location if you'd prefer)
- Sets the "run in" directory
- Sets the shortcut icon
- Sets the shortcut's window style
In the example that follows:
- MyApp is the name of the database application
- \\srvr\share\fldr\myapp.mdb is the location of the database file
- \\srvr\share\fldr\system.mdw is the location of the workgroup information file
- \\srvr\share\fldr\myapp.ico is the location of the application icon file
Okay, here's the script:
Set WshNetwork = WScript.CreateObject("WScript.Network") Dim strI strI = InputBox("Enter your MyApp database username here. If a default has been suggested, please " & _ "check it before you proceed, amending as required." & Chr(10) & Chr(13) & Chr(10) & Chr(13) & _ "NOTE: leaving this blank cancels the installation!", "Shortcut personalisation", WshNetwork.Username) If Len(strI)>0 Then Dim WSHShell Set WSHShell = WScript.CreateObject("WScript.Shell") Dim MyShortcut, DesktopPath, AccessPath DesktopPath = WSHShell.SpecialFolders("Desktop") Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\MyApp - production.lnk") AccessPath = WSHShell.RegRead("HKCR\.mdb\") AccessPath = WSHShell.RegRead("HKCR\" & AccessPath & "\shell\new\command\") AccessPath = Replace(Left(AccessPath, InStr(1, AccessPath,"/", 1) -1), """", "") MyShortcut.TargetPath = AccessPath MyShortcut.Arguments = "\\srvr\share\fldr\myapp.mdb /wrkgrp \\srvr\share\fldr\system.mdw /user " & strI MyShortcut.WorkingDirectory = "C:\Program Files\Microsoft Office\Office\" MyShortcut.WindowStyle = 3 '1=normal, 2=minimised, 3=maximised MyShortcut.IconLocation = "\\srvr\share\fldr\myapp.ico" MyShortcut.Save Msgbox "Installation completed successfully.", 64, "MyApp" Else Msgbox "Installation was cancelled.", 48, "MyApp" End If
Note that your users may get prompted to confirm that they want to run a VBS file, depending on their PC/environment security settings. Like I said before, this is a security measure to help prevent the feeble-minded exploiting the power of Visual Basic scripting to be malicious.