In aggiunta al metodo dell'inserimento di una "Trusted Location" da codice, per poter eliminare il fastidioso messaggio "Avviso di protezione - Alcuni contenuti del database sono stati disattivati", io ho provato l'alternativa di abilitare tutte le macro da codice. Al primo avvio Access farà comparire l'avviso ma abilitando il contenuto viene eseguita la function che abilita le macro ed al successivo avvio l'avviso non comparirà più perchè tutte le macro saranno abilitate.
Questo avviene perchè la function modifica il valore di una chiave di registro, che si chiama "VBAWarnings", e se questa non esiste la crea e la impostata al valore corertto per abilitare tutte le macro.
Se può servire a qualcuno, posto il codice della mia function qui sotto:
'Aggiungere il riferimento alla libreria "Microsoft Script Host Object Model"
Public Function AbilitaMacro()
Dim Ws As WshShell
Dim KeyReg As String
Dim Vers As String
On Error GoTo AbilitaMacroErr
Vers = Access.Version
KeyReg = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Vers & "\Access\Security\" ' percorso della chiave di registro
Set Ws = New WshShell
If Ws.RegRead(KeyReg & "VBAWarnings") <> 1 Then
Ws.RegWrite KeyReg & "VBAWarnings", 1, "REG_DWORD"
End If
AbilitaMacroErr:
If Err.Number = 0 Then
ElseIf Err.Number = -2147024894 Then ' gestione del caso in cui la chiave di registro non esista
Resume Next
Else
MsgBox "Errore n° " & Err.Number & vbCrLf & _
Err.Description & vbCrLf & _
"Problemi con l'abilitazione delle Macro.", vbExclamation, ""
Exit Function
End If
End Function
Io l'ho provata su diversi computer che avevavo versioni di Access 2007 e 2010 e sembra funzionare bene.