bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Macro de Segurança e o CurrentProject.isTrusted

Macro de Segurança e o CurrentProject.isTrusted

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Códigos do Visual Basic for Applications (VBA) e de alguns comandos de Macros, vêm bloqueados por padrão.  A liberação desses recursos fica a critério do usuário, através de um aviso de segurança, quando se carrega o aplicativo. 

Dependendo do tipo de configuração do programa,  poderá receber formatos de aviso diferentes.  Um deles é o que você vê abaixo (modo runtime):

Usando Access

Ao clicar em Abrir, o usuário estará autorizando o Banco de Dados a utilizar-se do VBA e das Macros que estão bloqueadas.

Toda vez que se carregar o aplicativo, a mensagem de advertência se abrirá para que o usuário,  novamente, autorize a abertura ou não.

O outro tipo de formato é esse abaixo:

Usando Access

 

Clicando no botão Opções..., do aviso de segurança é aberta a tela Alerta de Segurança, que permite habilitar os recursos bloqueados.

No Tutorial Configurando Macro de Segurança foi explicado, em detalhes, como configurar um Banco de Dados, de modo que ele se torne confiável e esse aviso deixe de existir, mas ficou de fora do tutorial uma outra alternativa de configuração "oportunista" e que irei explicar aqui.

Veja, é possível detectar, através da nova propriedade IsTrusted do objeto CurrentProject, se o usuário permitiu a abertura do banco de dados com os recursos de Macro e VBA habilitados.   True(-1), significa que foram habilitados e false(0) de que não foram.   Se habilitados, pode-se, então, executar uma função, através do VBA, que configure o aplicativo para o modo confiável, não permitindo mais esse bloqueio incômodo.

Vamos precisar:

- de uma função que altere as configurações de segurança do aplicativo, no registro do Windows;
- da Macro AutoExec para detectar, na inicialização do aplicativo, se a segurança de macro está ou não habilitada.

Abra o módulo global e copie as funções abaixo:

Faça o login aqui para ter acesso ao código.

Crie uma macro de nome AutoExec e configure conforme a imagem:

Usando Access

Observe a linha CurrentProject.isTrusted=-1 na coluna de condição, ou seja, só executa a função se for detectado pela propriedade IsTrusted,  que o usuário autorizou o uso do VBA.

Este código foi projetado para atender as versões do Access 2007, 2010 e 2013.

Download

Sucesso!


 

Artigos Relacionados
 
Macro de Segurança
 

 


45 comentários

Avelino Sampaio   25/05/2023 04:04:23

Valdir,

veja neste meu artigo:

http://www.usandoaccess.com.br/dicas/armazenar-valores-lista-propriedades.asp?id=1

Ou pode utilizar a extensão ACCDR com o OPEN

http://www.usandoaccess.com.br/tutoriais/seguranca-microsoft-access-usando-o-open.asp?id=1#inicio

Bom estudo!

Valdir   24/05/2023 16:33:48

Eu irei usar as macros, mas como bloquear o shift para o usuário na inicialização.?

Maria Isabel Costa   21/10/2022 10:48:00

Apliquei o seu código na minha BD e funcionou corretamente com o sistema operativo Windows 10, no entanto quando abro os formulários através de botões, uns consigo abrir bem noutros dá um erro e todas as tabelas, consultas desaparecem. Fecho a BD e volto a entrar e nesse formulário que deu erro já consigo entrar, mas ao abrir outros volta a acontecer o mesmo. Não sei se terá a ver com as macros de segurança, não consigo compreender o motivo, porque noutros pcs o programa funciona corretamente. Será que me pode dar uma ajuda. Obrigada

Caio Fábio   21/09/2022 08:43:27

Bom dia Avelino,

A minha pergunta está associada a pergunta João Eduardo, em 11/02/2011 as 09:55:03.

Nessa parte dá erro e pode para compilar, poderia me ajudar?

caminho = Replace("HKEY_CURRENT_USER\Software\Microsoft\Office _
\[v]\Access\Security\Trusted Locations\[bd]\", "[v]", Application.Version)


Uso Access 2010.

Gustavo   01/09/2022 14:06:35

Obrigado pelas explicações, já o acompanho uns 3 anos com os seus projetos, inclusive já comprei o seu monta ribbons que por sinal é de grande qualidade me ajuda em meus projetos até hoje.

MS ACCESS 2016 E RUNTIME 2016   02/06/2022 14:25:13

Boa tarde Avelino o Access 2016 não reconhece a função =fncConfigMacro()

Avelino Sampaio   25/04/2022 06:50:12

Sidnei,

sim, funciona nas três versões (2007, 2010 e 2013).

Sucesso!

Sidinei da Rosa   24/04/2022 10:00:54

Otimo funcionu perfeitamnte.

Só uma pergunta funciona para todas as versoes do access?
até 2013?

Jose Carlos   06/04/2022 10:20:30

bom dia amigo no meu banco de dados esta dando este aviso
Aviso de segurança certo itens do contetudo do banco de dados foram desabilitados, noão consigo abrir o formulario, pode me ajudar, obrigado,um abraço

Nilson   02/03/2022 09:22:29

Bom dia,

Em caso de utilizar RUNTIME 2010... Como posso fazer funcionar meu sistema que estou criando? Utilizai o IsTrusted, mas ele me retorna que:

"Você tentou executar uma macro ou utilizou o objeto DoCmd no VisualBasic... etc etc..."

Se eu rodo o Maestro_v5 ele funciona normal no RUNTIME...
Outra coisa que noteié: Se deixar o caminho do be configurado (em access completo libero a habilitação do macro e defino um caminho e reproduz o mesmo caminho no PC com RUNTIME) ai o meu sistema abre normalmente...

Eu uso os códigos do Maestro para criar a conexão e vinculo com o caminho be...

O que poderia ocasionar esse erro no meu sistema sendo que é o mesmo código que funciona com o Maestro?

Grato,

Almir   08/11/2021 07:55:42

Avelino valeu por mais essa ajuda...

Avelino Sampaio   03/09/2021 13:18:15

José,

Observe a orientação que passei para o amigo IVAN. Se não funcionar com o acrescimo no resgistro do AllowNetworkLocations , vc deverá deslocar seu front-end para a máquina local. Cada máquina deverá ter o seu front-end.

Sucesso!

José Donizeth Rodrigues   03/09/2021 13:05:25

O front-end do meu BD está em rede, na máquina servidora.

José Donizeth Rodrigues   03/09/2021 12:37:19

Macro de segurança

Uso o access 2010, sendo que a aplicação roda em rede e mesmo com a adpatação do exemplo Tuto5 para minha aplicação, o access continua solicitando autorização de segurança de macro, toda vez que algum usuário abre a aplicação em suas máquinas. Só esclarecendo que minha aplicação é distribuida via access runtime, uma vez que os usuários não possuem access instalado em suas máquinas.

José Donizeth Rodrigues   03/09/2021 12:16:35

Uso o access 2010, sendo que a aplicação roda em rede e mesmo com a adpatação do exemplo para minha aplicação, o access continua solicitando autorização de segurança de macro, toda vez que algum usuário abre a aplicação em suas máquinas.

Ivair Martins   26/08/2021 10:19:47

Bom dia Avelino, Tudo bem

Então no arquivo do exemplo que eu baixei já tem na 'Função fncConfigMacro' essa linha abaixo:
'libera pasta de rede
'-----------------------
reg.RegWrite fncCaminhoLoc(True) & "AllowNetworkLocations", 1, "REG_DWORD"
'-----------------------
Não seria isso?? Não sei o que estou fazendo de errado, estou testando esse exemplo na Rede para depois usar no meu programa.
Obs: Não entendi bem "criar uma variavel" vc poderia me explicar por favor e dar um exemplo é a primeira vez que eu vou colocar um programa em rede.

Obrigado...

Avelino Sampaio   25/08/2021 14:52:58

Ivan,

como o local é na rede, talvez tenha que ativar esta permissão.

Crie um variável para receber o caminho:

Exemplo para o Access 2007

CaminhoTrust = "HKEY_CURRENT_USER\Software\Microsoft\Office \12.0\Access\Security\Trusted Locations

Acrescente a gravação da chave (AllowNetworkLocations), que permite a liberação pela rede.

reg.RegWrite CaminhoTrust & "AllowNetworkLocations", 1, "REG_DWORD"


Sucesso!

Ivair Martins   25/08/2021 13:18:26

Boa tarde Amigos, eu baixei o exemplo anexado pelo Avelino e coloquei ele em rede, na maquina do servidor funciona perfeitamente mas na maquina do cliente aparece a Msg de Aviso aí eu clico em habitar ele habilita normalmente pq eu clico no Botao do Form aparece a msg 'O VBA esta liberado', mas quando eu fecho o arquivo e depois vou reabri-lo a Msg aparece novamente, já olhei no Editor de registro da Maquina Cliente e na pasta Trusted Localtions está o arquivo gravado e no nome do Caminho (Path) está ( \\198.162.0.1\MinhaPasta ) onde seria o caminho no meu Servidor, onde será que eu estou errando?
Obrigado...

Guto Ferrari   18/08/2021 17:26:32

Matei o problema e acredito que seja o mesmo problema do Filipe, que postou acima de mim.

Uma das linhas do código extrai o caminho do BD, excluíndo o nome do arquivo com extensão .accdb.
O BD que eu utilizei o código era extensão .mdb. Bastou alterar a extensão e o código funcionou perfeitamente. Fica a Dica!

Abraços

Guto Ferrari   18/08/2021 17:22:18

Só para complementar: inseri um Caixa de Mensagem para ter certeza que o autoexec estava mesmo executando e está. Acho que é algo com o código.

Atenciosamente

Guto Ferrari   18/08/2021 17:16:54

Olá Avelino!
Parabéns pelo site! Excelente iniciativa que ajuda demais os desenvolvedores iniciantes!!!!

Copiei o autoexec e módulo, mas ele não faz nada no meu BD.
Porém quando eu o executo no seu arquivo de exemplo, roda perfeitamente.

O que pode estar havendo?

Muito obrigado Avelino   02/07/2021 13:17:25

este site tem sido muito util pra mim, inclusive faço agradecimentos na tela splash do aplicativo citando diretamente a colaboração de Avelino Sampaio

Muito obrigado Avelino   02/07/2021 13:12:42

este site tem sido muito util pra mim, inclusive faço agradecimentos na tela splash do aplicativo citando diretamente a colaboração de Avelino Sampaio

Avelino Sampaio   05/06/2021 08:05:11

Erick,

vá na seção "DICAS" aqui do site e leia o artigo "Desabilitando o Painel de Navegação"

Sucesso!

Erick Felix da Silva   04/06/2021 08:30:42

Olá amigo. Muito obrigado pela macro, vai quebrar um galho de muita gente ainda! Só uma pergunta, no access 2010 existe a opção "Ocultar painel de navegação" que oculta esse painel aonde aparece a macro. É necessário que o painel não esteja oculto para que a macro autoExec funcione? Agradeço desde já, abraço!

OLDRI   08/05/2021 10:24:00

Avelino, existiria uma forma de aplicar sua função no Access 2003?
Obrigado

Filipe   06/05/2021 13:20:45

Ola Avelino,

não funciona tentei de tudo simplesmente parece que o código não existe.

Andre   13/03/2021 07:13:34

Oi Avelino,
Por um acaso você já se deparou com um "Erro de tempo de execução '57121': Erro de definição de aplicativo ou de definição de objeto"? Bom estou me deparando com esse problema, mas o mais estranho é que ele não aparece logo da 1ª vez que abro o arquivo. Das primeiras vezes o arquivo abre normalmente e, de repente, o erro acontece e as macros e projeto em VB não funcionam mais. O arquivo abre, mas como se fosse uma Pasta de Trabalho do Excel normal e não a Habilitada para Macros como deveria ser.
Se puder me esclarecer algo sobre esta situação agradeço.

Andre   05/03/2021 00:32:22

Olá Avelino. Já consegui uma solução bem parecida com a sua. Muito obrigado assim mesmo.

Avelino Sampaio   02/03/2021 07:31:41

Andre,

Não tenho conhecimento sobre como funciona o VBA para o Excel.

Por gentileza, visite o site do meu amigo Felipe Costa, que irá conseguir esta informação.

Copie e cole o endereço abaixo no seu navegador.

http://www.ambienteoffice.com.br

Sucesso!

Andre   01/03/2021 19:02:57

Muito bom seu módulo! Ele só serve para aplicações no Access ou serveria também para aplicações no Excel?

Andre   01/03/2021 18:57:45

Muito bom seu módulo! Ele só serve para aplicações no Access ou serveria também para aplicações no Excel?

Avelino Sampaio   09/01/2021 12:36:54

Marcus Porfirio,

vc está correto. Na primeira abertura o usuário terá que autorizar se a letra for diferente ou se for em um novo micro.

Sucesso!


Marcus Porfirio   09/01/2021 12:16:29

Avelino tenho uma pergunta a fazer (gostaria que vc me falasse se estou correto),
Se o meu banco estiver em um pendrive e se eu utilizar esta solução pode ser que ela não funcione sempre, pois é possível que em um micro o caminho do banco seja diferente de outro (nem sempre a letra do drive do pendrive é o mesmo, uma hora é f: em outro pode ser outra letra) e ainda, em cada micro que eu abrir o banco primeiramente terei que autorizar pelo menos na primeira abertura o uso de vba, é isso?

Avelino Sampaio   06/12/2020 08:20:41

Eder,

obrigado pelo feedback e sucesso!


Eder Castro   05/12/2020 16:33:13

Avelino parabens sem palavras pelo site, vc e o Valdino estão de parabens, depois q conheci o site minhas aplicações nunca mais foram as mesmas melhoram muito graças ao conhecimento compartilhado de vcs, obrigado mesmo.

Avelino Sampaio   21/11/2020 07:18:16

Fabricio,

lembrando, que ao rodar pela primeira vez, o Access irá abrir a tela de aviso. Da segunda vez em diante estará livre do aviso.

Vá na seção "contato" aqui do site e esclareça melhor a situação.

Grato

Fabricio   20/11/2020 19:51:31

Eu abri o exemplo, mas mesmo assim aparece "Certos itens do conteúdo do banco de dados foram desabilitados", o que eu faço ?

Avelino Sampaio   27/10/2020 17:47:43

Rogerio,

só tem que copiar a macro e o módulo.

Sucesso!

Rogerio   27/10/2020 08:38:18

Primeiramente parabens pelo exemplo.

Baixei seu exemplo e vi que tem um formulário inicial que é aberto automaticamente.

A minha duvida é o seguinte: esse formulário é essencial para o funcionamento ou é apenas para ilustração/explicação, ou seja se eu quiser usar em meus projetos só tenho que copiar o macro e o modulo é isso?

paulo gesse da costa   28/05/2020 22:30:01

show de bola!

Avelino Sampaio   14/02/2020 08:12:03

João,

Vá na seção "Contato" do site e me passe mais detalhes.

no aguardo

João Eduardo   11/02/2020 09:55:03

Ola Avelino
otimo o seu modulo mas deu erro de sintaxe,abre uma caixa pedindo para verificar o codigo e recompilar .Meu Ofice é 2007 .O que devo Fazer?

Avelino Sampaio   02/02/2020 14:27:16

Juan,

Na macro AutoExec, insira primeiro o código do istruted e na linha seguinte inclui o de Checar Vínculo

Sucesso

Juan   02/02/2020 14:04:46

Olá Avelino,
Muito Bom, uma pergunta, já uso sua AutoExc para Checar vínculo, como posso fazer para incluir?

Grato.


Envie seu comentário: