[AccessD] Deployment Advice

Mark Simms marksimms at verizon.net
Mon Sep 23 16:47:42 CDT 2013


Wow, great point Steve....you've just given me another issue to handle for
the rollout.
I'll deploy this as a one-time CommandLine driven operation post
installation of the runtime package.

> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com [mailto:accessd-
> bounces at databaseadvisors.com] On Behalf Of Steve Schapel
> Sent: Sunday, September 22, 2013 5:14 PM
> To: Access Developers discussion and problem solving
> Subject: Re: [AccessD] Deployment Advice
>
> In this case doing it via the GUI is not an option anyway, Mark,
> because
> this is not exposed via the Runtime.
>
> Regards
> Steve
>
> -----Original Message-----
> From: Mark Simms
> Sent: Monday, September 23, 2013 5:40 AM
> To: 'Access Developers discussion and problem solving'
> Subject: Re: [AccessD] Deployment Advice
>
> Important to Remember:
> this is a catch-22 situation....as you must close the application and
> reopen
> it after making those API calls.
> Been there, done that.
> It does work however and it is a good option if you don't trust your
> users
> can do it correctly via GUI.
>
> > Function Startup()
> > AddTrustedLocation
> > DoCmd.Quit
> > End Function
> >
> > Public Function AddTrustedLocation()
> > On Error GoTo err_proc
> > 'WARNING:  THIS CODE MODIFIES THE REGISTRY
> > 'sets registry key for 'trusted location'
> >
> >   Dim intLocns As Integer
> >   Dim i As Integer
> >   Dim intNotUsed As Integer
> >   Dim strLnKey As String
> >   Dim reg As Object
> >   Dim strPath As String
> >   Dim strTitle As String
> >   Dim strTrustedLocations As String
> >   strTitle = "Add Trusted Location"
> >   Set reg = CreateObject("wscript.shell")
> >   strPath = CurrentProject.Path
> >   strTrustedLocations =
> "HKEY_CURRENT_USER\Software\Microsoft\Office\"
> > &
> > Format(Application.Version, "##,##0.0") & _
> >              "\Access\Security\Trusted Locations"
> >   'Specify the registry trusted locations path for the version of
> > Access used
> >   strLnKey = strTrustedLocations & "\Location"
> >
> > On Error GoTo err_proc0
> >   'find top of range of trusted locations references in registry
> >   For i = 999 To 0 Step -1
> >       reg.RegRead strLnKey & i & "\Path"
> >       GoTo chckRegPths        'Reg.RegRead successful, location
> exists
> > > check for path in all
> > locations 0 - i.
> > checknext:
> >   Next
> >   MsgBox "Unexpected Error - No Registry Locations found",
> > vbExclamation
> >   GoTo exit_proc
> >
> >
> > chckRegPths:
> > 'Check if Currentdb path already a trusted location
> > 'reg.RegRead fails before intlocns = i then the registry location is
> > unused and
> > 'will be used for new trusted location if path not already in registy
> >
> > On Error GoTo err_proc1:
> > 'Allow Network Locations
> >  reg.RegWrite strTrustedLocations & "\AllowNetworkLocations", 1,
> > "REG_DWORD"
> >
> >  For intLocns = 1 To i
> >       reg.RegRead strLnKey & intLocns & "\Path"
> >       'If Path already in registry -> exit
> >       If InStr(1, reg.RegRead(strLnKey & intLocns & "\Path"),
> strPath)
> > = 1 Then MsgBox
> > CurrentProject.Path & " already in trusted locations": GoTo exit_proc
> > NextLocn:
> >   Next
> >
> >   If intLocns = 999 Then
> >       MsgBox "Location count exceeded - unable to write trusted
> > location to registry",
> > vbInformation, strTitle
> >       GoTo exit_proc
> >   End If
> >   'if no unused location found then set new location for path
> >   If intNotUsed = 0 Then intNotUsed = i + 1
> >
> > On Error GoTo err_proc:
> >   strLnKey = strLnKey & intNotUsed & "\"
> >   reg.RegWrite strLnKey & "AllowSubfolders", 1, "REG_DWORD"
> >   reg.RegWrite strLnKey & "Date", Now(), "REG_SZ"
> >   reg.RegWrite strLnKey & "Description",
> > Application.CurrentProject.Name, "REG_SZ"
> >   reg.RegWrite strLnKey & "Path", strPath & "\", "REG_SZ"
> >   MsgBox CurrentProject.Path & " added to trusted locations"
> > exit_proc:
> >   Set reg = Nothing
> >   Exit Function
> >
> > err_proc0:
> >   Resume checknext
> >
> > err_proc1:
> >   If intNotUsed = 0 Then intNotUsed = intLocns
> >   Resume NextLocn
> >
> > err_proc:
> >   MsgBox Err.Description, , strTitle
> >   Resume exit_proc
> >
> > End Function
> >
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com




More information about the AccessD mailing list