Question Adding Registry key with the Packaging Wizard

BarbASCII

New member
Local time
Today, 11:57
Joined
Nov 13, 2012
Messages
7
Hi Everyone
When using the runtime version, there is an issue with trusted locations. The only way around this, it seems is to edit (add) the registry key, but I know very little about this. My research tells me the key to be added is:
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\A ccess\Security\Trusted Locations]
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\A ccess\Security\Trusted Locations\Location(n)]
"Path"="C:\PathToDB\"
"AllowSubfolders"=dword:00000001(1)
"Description"="The description"
"Date"="01.01.2007 12:00"
If I use the Packing Wizard with Access 2007 to prepare an installation disk, there is the option for Additional Registry Keys, which looks promising, however, I am unsure how to proceed. You are asked: Root, Key, Name and Value. There are 4 options for Root: Default root, Current user, All users, Classes root. What does all this mean, please?

Thanks
 
Can't remember where I found this now but some kind sole posted the following
Code:
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
  
  strTitle = "Add Trusted Location"
  Set reg = CreateObject("wscript.shell")
  strPath = CurrentProject.Path

  'Specify the registry trusted locations path for the version of Access used
  strLnKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Format(Application.Version, "##,##0.0") & _
             "\Access\Security\Trusted Locations\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:
  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 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
  
'Write Trusted Location regstry key to unused location in registry
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"
  
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

If you save this in a module you can run it from a button the first time the db is run ( you have to allow to run 'security message'). It adds the db location as trusted location.

Not saying its better than a reg file but it doesn't matter if installation location changes because it takes the current location.

HTH
 

Users who are viewing this thread

Back
Top Bottom