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
Alterando a cor do Access Runtime

Alterando a cor do Access Runtime

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

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

Open v3

 

Resolvi instalar o Access Runtime 2010 e experimentar se era possível trocar a sua cor básica prata para azul ou preta e para a minha surpresa foi possível, já que se trata de uma configuração geral do Office e não do Access, em particular!

Como configurar?

O Access Runtime não possibilita acesso a nenhum tipo de configuração, via tela de designer ou ribbons básicas, pois estes não estão presentes. Desta forma, configurações só podem ser feitas mediante o uso do VBA.   No caso, em particular da troca de cor, a definição fica armazenada na chave THEME, no registro do Windows e no seguinte endereço:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Theme (1-Azul , 2-Prata, 3-Preto)

Usando o Windows Scripting, podemos com algumas poucas linhas alterar/criar a chave THEME, no registro do Windows.   Veja a função abaixo, que serve tanto para o Access 2007 quanto para o Access 2010:

Option Compare Database
Option Explicit

#If VBA7 Then
Const ChaveReg ="HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Theme"
#Else
Const ChaveReg ="HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\Theme"
#End If
 
Enum eCor
   Azul = 1
   Prata = 2
   Preto = 3
End Enum
----------------------------------------------------------------------------
Public Sub fncCorAccess(cor as eCor)
Dim objReg As Object
Set objReg = CreateObject("wscript.shell")
'Gravar valor na chave THEME
objReg.RegWrite ChaveReg, cor, "REG_DWORD"
Set objReg = Nothing
End Sub

Para alterar a cor , basta executar o procedimento: Call fncCorAccess(Preto)

Reiniciando o Access

O único porém é que a cor só é alterada na abertura seguinte do Access.  Para criar um efeito imediato na configuração, montei um código que reinicia automaticamente a aplicação. Aqui está:

Private Sub fncReiniciandoAplicativo()
Dim strLocal As String
Dim objWs As Object
'------------------------
'Reiniciando
'------------------------
Set objWs = CreateObject("wscript.shell")
strLocal = CurrentProject.Path & "\" & CurrentProject.Name
strLocal = Chr(34) & "MSACCESS.EXE" & Chr(34) & " " & Chr(34) _
           & strLocal & Chr(34)
'0 - oculto / 5 - visível
objWs.Run strLocal, 5, "false"
'-------------------------------------
'Fecha atual
'-------------------------------------
Application.Quit acQuitSaveAll
End Sub

Segue,  para você testar, um exemplo que funciona também no Access completo.  Observe que utilizo o macro AutoExec que é para configurar a cor desejada, logo na inicialização. Neste exemplo, a cor padrão que configurei foi a preta.

Bom estudo!


 

 


16 comentário(s)

Wilson Roberto Vasques Nunes   13/07/2022 17:29:16

Olá!
Parabéns aos envolvidos nestas dicas. Muito bem escritas e bastante didáticas.
Recentemente eu adquiri o Office 365 com a finalidade precípua de migrar um sistema de administração de condomínios originalmente desenvolvido por mim na versão 97 (salvo equívoco) do Access. Aliás eu conheço o Access desde a versão 1.0. Não existia nem módulos, era tudo por macros. Imagina...
Parei as migrações na versão 2003 e agora resolvi revolucionar e, com ânimo renovado, turbinar o "brinquedo".
Nos demais terminais da empresa estou usando o Runtime. Porém a cor laranja avermelhada é sofrível. Muito desgastante para quem o usa. Aliás, a versão oficial do Access versão desenvolvedor também é dessa cor "gritante".
Tentei usar o código acima para alterar a cor do nosso querido Access. Mas, nada. Mudei a versão na linha de comando para "...oftware\Microsoft\Office\16.0\Com...". Não funcionou. Abri os registros do Windows e observei que não existe a chave Comman\Theme. Naveguei pelas demais chaves e não encontrei nada que fizesse sentido. Enfim. Alguém sabe o que fazer. Optei em fechar os registros temendo o pior. rsrs
Grande abraço a todos.

Gilson Russo   28/03/2018 10:05:56

Parabéns a Avelino Muito obrigado por compartilhar seu conhecimento!!!!
gostaria de saber se é possível aplicar este comando no access 2016? que só tem duas opções "colorido e branco" tentei modificar o código colocando as opções na macro e no código vba e referenciei a key do office 2016 UI Theme , mas não deu certo !

Nilson   13/02/2015 22:05:44

Boa noite,

É possível rodar um BD Access 2013 em uma máquina que não possua o Office instalado através do Access Runtime 2013?
Estou com problema no meu trabalho, pois só existe o Base (LibreOffice) e quase não tem recurso.

Avelino Sampaio   20/11/2014 08:29:55

Daniel,

não tem como.

Sucesso!

Daniel Raphael   19/11/2014 23:23:18

Queria mudar para outras cores vermelho amarelo verde tem como ?
Daniel Raphael

Avelino Sampaio   17/07/2014 08:07:28

Sérgio,

leia o outros cometários que irá encontrar a solução.

Sucesso!

Sérgio   16/07/2014 13:39:43

Avelino, boa tarde!

Primeiramente obrigado por disponibilizar seus conhecimentos!

Tentei utilizar o código acima, mas ao abrir o aplicativo o sistema emite a seguinte mensagem de erro:
"Erro em tempo de execução '3270':Propriedade não encontrada",
ao depurar é marcado em amarelo o trecho do código:
If CurrentDb.Properties!themeAccess = fncLerCorAccess Then.

Avelino Sampaio   10/02/2012 15:07:53

Dal Secco

tem sim, use o comando regRead do script.

NumCor = objReg.RegRead(ChaveReg)

Sucesso!

Dal Secco   07/02/2012 16:19:17

Achei muito legal.
Eu tenho como ler a cor do registro, para usá-la em uma tela?

Abraço e obrigado por você ser como é.

Renato Siva   10/11/2011 16:51:59

Deu certo Avelino.
Obrigado pela atenção.

Avelino Sampaio   10/11/2011 16:11:59

Renato,

troque este linha do código acima:

Call fncCriarPropriedade("themeAccess", 1)

Por esta:

Call fncCriarPropriedade("themeAccess", me!cboCor)

Sucesso!

Avelino Sampaio   10/11/2011 16:09:23

Renato,

este erro acontece no meu arquivo exemplo ou no seu BD ?

No arquivo exemplo tem uma função chamada fncCriarPropriedade()

Altere o código do evento , acrescentando esta função:

Private Sub cboCor_AfterUpdate()
On Error Resume Next
CurrentDb.Properties!themeAccess = Me!cboCor
If Err.Number Then
Call fncCriarPropriedade("themeAccess", 1)
Err.Clear
End If
Call fncCorAccess(Me!cboCor)
End Sub

Tenho um artigo aqui na seção DICAS que demonstra como criar Propriedades.

No aguardo


Renato Siva   10/11/2011 15:49:43

Avelino... parabéns pelo código.
Mas para mim aqui não funcionou.

Dá erro ao troca a cor: "Propriedade não encontrada"
Trecho do código com problema: CurrentDb.Properties!themeAccess = Me!cboCor

Tem que configurar mais algo para funcionar ?

Avelino Sampaio   05/07/2011 04:53:34

Marcio,

Corrigi o link. Obrigado pelo toque.

Sucesso!

MARCIO MELO - RJ   04/07/2011 21:00:01

Essa é muito boa, simples e eficiente, e nos mostra como o VBA é dinâmico, usando o Windows Scripting na reescrita do registro do windows que sabemos que é maior tabu, mais o seu conhecimento vai muito mais além do que eu imaginava, vou lhe dar um toque verifique o seu arquivo de download aponta para outro (video), dessa vez nem recebi a sua newDica, fui no seu site e verifiquei que devia ser novo porque ainda estava com pouca visitas.

Forte abraço!

Marcelo David   01/07/2011 09:41:44

Cara, cada vez mais voce nos surpreende!! Parabéns!!!


Envie seu comentário: