Jair Martins Sex 04 Nov 2016, 8:31 am
Oliveira,
Recomendo a seguinte estratégia, que é a que eu uso aqui. Observe que esta técnica não permite a exibição da lista de objetos. Nem tabelas, nem forms, nem consultas, nem nada. É um procedimento bastante radical.
Então, antes de fazer, certifique-se que o seu aplicativo está completo e que todos os objetos de interface serão abertos somente a partir de códigos.
1 - Vá nas Opções do Aplicativo e desabilite o uso das Teclas Especiais do Access e
a exibição do Painel de Navegação.
2 - Cole num módulo existente ou crie um novo módulo com a função abaixo:
Function AlterarPropriedade(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Database, prp As Property
Const conPropNotFoundError = 3270
Set dbs = CurrentDb
On Error GoTo Change_err
dbs.Properties(strPropName) = varPropValue
AlterarPropriedade = True
Change_bye:
Exit Function
Change_err:
If Err = conPropNotFoundError Then ' Propriedade não localizada.
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropValue)
dbs.Properties.Append prp
Resume Next
Else
' Erro desconhecido.
AlterarPropriedade = False
Resume Change_bye
End If
End Function
3 - Crie um form com um comando que acione o código:
AlterarPropriedade "AllowBypassKey", dbBoolean, False
4 - Antes de instalar o accde, abra (no accde) este form e acione o comando.
Está feito. Não há jeito nenhum de abrir qualquer objeto através do Painel de Navegação. Enquanto não for acionado o comando, você poderá abrir tanto o accde quanto o accdb utilizando a combinação Shift + F11.
Nunca utilize o comando no accdb, a não ser que você tenha uma cópia de segurança.
Qualquer dúvida, estou à disposição.
Abs.