Ribbons - Frutos do Suporte
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.
Fiz um apanhado das principais dúvidas que o pessoal costuma tirar comigo no suporte que ofereço para quem compra o MontaRibbons.
1) É possível usar ribbons em projetos MDB ou ADP ?
Sim, a única exigência para isso é que estejam rodando no Access 2007 ou no Access 2010.
2) Posso utilizar macros para ativar os botões de uma ribbon ?
Sim, perfeitamente! Crie uma macro global e dentro desta as sub macros de comando.
Exemplo de um botão:
<button id = "btClientes"
imageMso = "CreateTableTemplatesGallery"
label = "Clientes"
onAction = "mcr_ribbon.mAbreFormClientes"/>
mcr_ribbon > macro global
mAbreFormClientes > sub macro com a ação "Abrir formulário"
3) Avelino, a ribbon que montei para o meu BD estava funcionando direitinho. Só que resolvi dividir o BD (back-end e front-end) e a ribbon parou de funcionar. Não entendi a razão. Pode me ajudar?
O assistente do Access, que realiza a separação do BD, carrega a tabela UsysRibbons para o back-end. Retorne com a tabela UsysRibbons para o front-end que irá funcionar.
4) Tenho vários formulários, relatórios e consultas que acesso pela ribbon e o meu SELECT CASE, na função fncOnAction, está ficando enorme. Não teria uma outra maneira de simplificar essa programação ?
Sim, tem. Podemos utilizar, no atributo onAction dos botões, função com passagem de parâmetros.
Copie a função abaixo para um módulo global qualquer:
Public Function fncAbrirObjeto(nomeObjeto As String, tipoObjeto As Byte) Select Case tipoObjeto Case 1 'formulário Docmd.OpenForm nomeObjeto Case 2 'relatório Docmd.OpenReport nomeObjeto , acViewPreview Case 3 'Consulta Docmd.OpenQuery nomeObjeto End Select End Function
Agora utilize a função direto na XML, conforme exemplo abaixo:
<button id = "btBackup"
imageMso = "FileBackUpSqlDatabase"
label = "Backup"
onAction = "=fncAbrirObjeto('frmBackup',1)" />
5) Avelino, eu estava tentando elaborar uma ribbon para usar junto a gráficos dinâmicos. Usando o MontaRibbons, encontrei o botão com idMso "FieldList" que mostra todos os campos que podem ser utilizados num gráfico dinâmico. À priori quando coloquei para rodar no modo .accdb ele funcionou perfeitamente, porém quando coloquei para o modo .accdr , ele simplesmente sumiu do meu menu. Creio que o Access o considera como um aplicativo do modo design e por isto não habilita no modo de tempo de execução. Gostaria de saber se é possível liberar este botão para funcionar no modo .accdr?
Force a visualização com o atributo visible.
<toggleButton idMso="FieldList" label="Lista" visible="true"/>
6) Avelino, eu não estou conseguindo localizar a tabela USysRibbons.
Trata-se de uma tabela de sistema. Para visualizar as tabelas de sistema faça o seguinte:
Botão do Office > Opções do Access > Banco de dados Atual > Clique no botão "Opções de navegação" > Marque "Mostrar objetos do sistema"
7) Como manter o foco numa determinada guia da ribbon ?
No Access 2010 resolveram esta questão! Veja:
objRibbon.ActivateTab "NomeDaSuaTab"
Já no Access 2007, você terá que fazer uso do SendKeys.
1) Acrescente tecla de atalho (keytip) para cada uma das tabs.
<tab id="TabPrincipal" label="Principal" keytip="H1">
2) Código:
Public Function fncSetFocusTab() Dim ws As Object #If VBA7 Then
'Access 2010 objRibbon.ActivateTab "NomeDaTab" #Else
'Access 2007 Set ws = CreateObject("WScript.shell") ws.SendKeys "%H1%" Set ws = Nothing #End If End Function
Não use o SendKeys do Access porque ocorre aquele famoso problema de desabilitar o teclado numérico.
8) Avelino, comprei sua coletânea do site e instalei o aplicativo UsandoAcces e lá percebi que você conseguiu ocultar toda a faixa superior do Access, inclusive o botão do Office. Como é que você fez isso ?
Veja aqui neste artigo como se faz!
9) Estava construindo minha ribbon no MontaRibbons e eis que não está mais aparecendo. O que fiz de errado ? Estou usando o Access 2010.
Habilite a detecção de erros que você irá descobrir a causa.
Botão Arquivo > Opções > Configurações do cliente > Marque "Mostrar erros da interface de usuários em suplementos"
10) Como faço para minimizar a ribbon na inicialização do meu aplicativo?
No Access 2007 não tem um comando específico para isso. A combinação de teclas CTRL + F1 é a responsável em maximizar e minimizar a ribbon.
Use a função abaixo no seu formulário de abertura ou na macro AutoExec
:
Public Function fncMinimizaRibbon() As Boolean Dim ws As Object Set ws = CreateObject("WScript.shell") If Application.CommandBars("ribbon").height > 140 Then ws.SendKeys "^{f1}" End If Set ws = Nothing End Function
Uso o sendkeys do Windows Script porque o do Access desliga o NumLock do teclado.
Já no Access 2010 tem um comando, conforme linha abaixo. Eu não testei ainda. A função acima também deve funcionar no Access 2010.
CommandBars.ExecuteMso "MinimizeRibbon"
11) Como eu tiro a mensagem "pressione F1 para obter mais ajuda" do painel informativo?
A parte inferior do painel informativo, que lhe instrui para pressionar o F1, não tem como ser desabilitada, porém é possível desabilitar o painel informativo, através do caminho abaixo:
Botão do Office > Opções do Access > Mais Usados > Abra a Combo "Estilo de dica de tela" e selecione "Não mostrar dicas de tela" .
12) Estou desenvolvendo um aplicativo, utilizando o MontaRinbons e também o Maestro, mas estou passando por um probleminha: criei uma ribbon principal e também uma outra ribbon que é acionada por um formulário. Acontece que quando faço a chamada deste formulário, este abre com a ribbon, porém ela desaparece rapidamente e volta para a ribbon principal. Já verifiquei as referências e a mesma está habilitada.
As ribbons não funcionam em formulários e em relatórios que estiverem no modo POP-UP. Altere a propriedade POP-UP do seu formulário para não.
13) "A MICROSOFT Access não pode executar a macro ou a função de retorno de chamada 'fncOnAction'", sendo que já copiei os módulos MOD_RIBBONS para o meu sistema e dentro desse módulo consta a função fncOnAction. Também já coloquei a referência do Object Library 12.0.
Peço para que torne a verificar, com o máximo de atenção, a referência! Selecione a referência MICROSOFT OFFICE 12.0 OBJECT LIBRARY. Não a confunda com a referência MICROSOFT ACCESS 12.0 OBJECT LIBRARY
14) No meu sistema, versão 2003, eu tinha ícones de atalhos para os formulários mais usados. Há possibilidade de fazer isso no Access 2007, de maneira que estes atalhos fiquem sempre visíveis?
Nos Access 2007 e 2010 têm o que chamamos de “Barra de ferramentas de acesso rápido” . Ela fica na parte superior esquerda, da faixa do Access e pode ser também posicionada na parte inferior, se assim o desejar. A personalização desta Barra, com os seus botões, é feita pela XML da sua Ribbon Principal.
Exemplo de configuração de um botão na "Barra de ferramentas de acesso rápido", conhecida também como qat.
...
<ribbon startFromScratch="true">
<!-- ***TAG QAT***-->
<qat><documentControls>
<button id = "btfrmClientes" imageMso = "CreateTableTemplatesGallery" onAction = "fncOnAction"/>
</documentControls></qat>
...
15) Quando aciono o meu aplicativo, assim que a tela de login aparece, a ribbon já é carregada. Na realidade, ela só teria que ser carregada quando eu efetuasse o login. A tela de login é a mesma do Maestro. Então, como faço para manter a ribbon desabilitada na inicialização, da mesma forma que é feito no Maestro?
A guia principal da sua ribbon, tem que estar com o atributo getVisible. Exemplo:
<!-- *** GUIA PRINCIPAL ***--> <tab id = "guiaPrincipal" label = "Principal" getVisible="fncGetVisible">
Para controlar a abertura da ribbon, na inicialização do Maestro, é usada uma variável de nome nlogoff, que se encontra no módulo mod_login
Public nlogoff As Boolean
No início da função fncGetVisible, esta variável é usada, encerrando a função e impedindo, com isto, qualquer alteração no valor padrão dos Gets. O valor padrão é false para o getVisible e o getEnabled. Assim, a guia principal é iniciada com seu getVisible = false, ocultando a ribbon.
Public Sub fncGetVisible(control As IRibbonControl, ByRef visible) On Error GoTo trataerro If nlogoff = False Then Exit Sub Select Case control.id ... ...
Esta variável também é alterada no formulário frmLogin , logo após a autenticação do usuário.
... ... '---------------------------------------- 'reconfigura ribbon rbPrincipal no logoff '---------------------------------------- If nlogoff = False Then nlogoff = True '------------------------------------------------------------------ 'revalida todos os controles da ribbons que tiverem usando os gets '------------------------------------------------------------------ objRibbon.Invalidate ... ...
16) No Access 2003, usava o seguinte comando para compactar e reparar o banco de dados:
CommandBars("Menu Bar"). _
Controls("Ferramentas"). _
Controls("Utilitários de banco de dados"). _
Controls("Compactar e reparar banco de dados..."). _
accDoDefaultAction
Mas no Access 2007, o referido comando não funciona. Tem como ajustá-lo para chamar o comando do Office Menu?
Insira o botão abaixo:
<button idMso = "FileCompactAndRepairDatabase" label=”Compactar” visible=”true”/>
17) Dentro do botão do Office há o botão "Opções do Access" que se encontra na estrutura <commands> da XML.
<command idMso="ApplicationOptionsDialog" enabled=”false"/>
Como faço para habilitar este botão pelo id do usuário?
Clique no botão HELP CONTROLES do MontaRibbons. Selecione o controle “commands” da lista. Desta forma será fornecido o código que manipula este botão, do modo que você deseja.
18) Estou montando um Sistema para controle de minha empresa! Criei uma ribbon especial com quatro guias: Comercial, Estoque, Financeiro e Administrador.
Como faço para que, quando eu clicar na guia, o formulário correspondente seja aberto?
As guias não têm um comando de ação para a execução de uma tarefa.
Minha sugestão é que você crie uma ribbon para cada formulário. Crie também uma ribbon PRINCIPAL, que tenha os botões de chamada destes formulários. Ao acionar o formulário desejado, pela ribbon principal, a ribbon, associada ao formulário será automaticamente carregada.
Como alternativa, veja o exemplo que desenvolvi para um Americano, a fim de atender a mesma necessidade que a sua! A questão é que, neste caso, exigirá de você, um maior conhecimento na programação.
19) Como consigo ocultar o botão btregistro, conforme linha abaixo, quando o usuário registra o programa?
<button id = "btRegistro" imageMso = "HappyFace" label = "Registrar o Sistema" size="large" getVisible="fncGetVisible" onAction = "fncOnAction"/>
Você guarda a informação de que foi registrado em uma tabela? Se assim o for, use a função Dlookup() para resgatar esta informação da tabela e aplicar como condição para ocultar o botão.
Exemplo do código usado na função fncGetVisible():
Public Sub fncGetVisible(control As IRibbonControl, ByRef visible)
... Case “btRegistro” If Dlookup(“campoRegistrado”,”tblRegistro”)= -1 then visible = false Else visible = true End if ... ...
Lembre-se de que para disparar os gets, você precisa usar o Invalidate. Se quiser alterar somente o botão registro, dispare o getVisible com o InvalidateControl. Exemplo:
objRibbon.invalidateControl ("btRegistro")
Muito cuidado com o uso do InvalidateControl, que é case sensitive, ou seja, btRegistro é diferente de BtRegistro.
20) Criei uma ribbon no MontaRibbons e exportei para o aplicativo Maestro, versão 2. Realizei todos os passos informados no MontaRibbons, só que, quando aciono o formulário, este não me traz a ribbon que criei. Já olhei na tabela tblRibbons e a nova ribbon está lá, só que ela não aparece quando eu aciono o formulário.
Neste quesito, o Maestro versão 2, difere bastante, do Maestro versão 1. O objetivo foi que quis mostrar como proceder para o aplicativo rodar ribbons com estruturas diferentes, de acordo com a versão do Access.
Você tem dois caminhos:
1º - Escolha no MontaRibbons, exportar para tabela USysRibbons. A tabela USysRibbons será criada no Maestro e você poderá utilizá-la de forma mais simples. Detalhe: poderá trabalhar com as duas tabelas (tblRibbons e USysRibbons) no seu aplicativo, sem problema algum, desde que não utilize nome de ribbons iguais.
2º - Exportando para a tabela tblRibbons, você deverá abri-la, identificar a sua ribbon e marcar o campo ribbon para o Maestro identificar que se trata de uma ribbon.
21) Tem como modificar a imagem do botão Office ?
Segue um arquivo exemplo, com os códigos para isso. Nunca usei, nem sequer experimentei! Portanto, não sei do grau de eficiência do código utilizado.
22) Personalizei a área Backstage e quando clico na guia "Arquivo" apresenta erros de "falha de localização", conforme você pode verificar na imagem. Detalhe: no MontaRibbons funciona direitinho, somente no meu aplicativo que isto está acontecendo!
Vá em: Opções do Access > Banco de Dados Atual > Marque "Permitir Menus Completos".
23) Qual é o comando da XML para eu desativar a lista de Documentos Recentes ?
Veja todos os detalhes neste tutorial.
24) Enfrentei um problema com as Ribbons montadas no Access 2010 e que funcionam com o RunTime em alguns computadores que rodam XP. Elas simplesmente não apareciam! O mais estranho é que em outros computadores, também com o XP, funcionavam, perfeitamente, com o Runtime. Já, em computadores que possuíam o Access completo, não houve problema algum. Depois de muito penar e não querendo importuná-lo, descobri que as Ribbons feitas no Access 2010, para funcionarem em ambiente RunTime, no XP, deverão, obrigatoriamente, ter o SP3. Constatei que todas as máquinas que as Ribbons não funcionaram ou eram XP com SP1 ou XP com SP2. Daí, eu mesmo instalei a atualização do XP e as minhas magníficas Ribbons funcionaram "perfect"!! Talvez, outras pessoas enfrentem essa mesma situação, por isso, deixo aqui a minha dica!
Interessante, porque se não tiver o SP3 , o Office completo rejeita a instalação. Parece um caso particular para o “runtime”. Valeu pela sua preciosa dica!
25) Tenho uma ribbon associada a um determinado formulário. Como faço para habilitar um botão dessa ribbon, quando selecionar um item de uma ListBox ?
Artigos Relacionadoss
MontaRibbons v.4.0 - Assistente completo para criar ribbons no Access
Vídeo - Criando ribbons (parte 1)
84 comentários Avelino Sampaio 06/02/2024 12:07:43 Domingos, tente baixar novamente. já está carregando. Grato. Domingos Machado 06/02/2024 08:20:51 Eu gostaria muito de "Como alternativa, veja o exemplo que desenvolvi para um Americano, a fim de atender a mesma necessidade "... desejo fazer essa implementação, mas não está carregando. Pode verificar, por favor? Avelino Sampaio 07/11/2023 13:14:11 Olá, Julio! - Abra o seu projeto no modo estrutura. - Abra o VBA e no menu Ferramentas clique em “Referências” - Selecione a referência MICROSOFT OFFICE XX.X OBJECT LIBRARY. Onde xx.x corresponde ao número da versão do seu Office ( 12.0 – 2007 / 14.0 – 2010 / 15.0 - 2013 / 16.0 – 2016 ) - Feche seu aplicativo e volte para o MontaRibbons. Tente a exportação. No aguardo Avelino Sampaio 27/06/2023 00:57:02 Ataliba, sim. poderá desenvolver no Access 2016, sendo que o mais indicado será desenvolver uma ribbon para cada versão, caso vc esteja configurando a área Backstage. Algumas imagens também deixam de ser exibidas de uma versão para outra. O meu aplicativo exemplo MAESTRO, que vc pode baixar da seção downloads, tem o exemplo de configuração de ribbons de que vc precisa. Observe no exemplo que é usado a tabela comum tblRibbons, para armazenar as versões distintas das ribbons. A macro AutoExec dispara a função fncCarregaRibbon(). Esta função se encarrega de verificar a versão do Access e então carrega a ribbon correspondente. Sucesso! Ataliba Torres 24/06/2023 06:08:54 Olá meu caro Avelino Sampaio, Estou desenvolvendo um banco de dados no Access 2016, a minha dúvida é: Posso criar ribbons nessa versão do access? As ribbons irão funcionar caso o usuário tenha versões anteriores do access em sua máquina onde irá utilizar o banco de dados que estou desenvolvendo? Avelino Sampaio 26/12/2022 12:14:52 Claudinei, abra um tópico lá no meu fórum (seção ribbons ) que eu vou te fornecer detalhes como fazer. http://www.redeaccess.com.br Aguardo Claudinei 26/12/2022 11:44:28 Desculpe não expliquei direito: Quero carregar apos logar, a ribon ja e carregada antes disso Claudinei 26/12/2022 11:37:07 Avelino, no meu caso eu ja tenho meu form pra Login. E por mais que leia e releia sua dica não to conseguindo fazer a ribon carregar deposi de logar , voce poderia me ajudar? Carlos Dal Secco 07/12/2022 15:59:21 Meu problema não se encontra nestes exemplos, ou não consegui identificá-lo! Acho que fiz alguma besteira, porque a tabela USysRibbons não aparece, mesmo configurando para aparecer o Sistema nas Opções. Não me lembro que porcaria eu fiz, de diferente que pudesse causar isto. Eu acho que entrei na tabela USysRibbons e na propriedade click em ocultar. Preciso alterar o menu, mas, não consigo ver a USysRibbons. Agradeço muito se alguém me puder ajudar. Obrigado Cassio Fabre 29/10/2022 14:01:00 Bom dia! Fica aqui o registro que a solução do Avelino funcionou perfeitamente. Obrigado novamente. Abraço. Avelino Sampaio 21/10/2022 10:21:28 Diego, se configurou a backstage na sua ribbon do 2010 não irá funcionar na versão 2013 pois as estruturas são diferentes. Entre em contato pelo meu e-mail para que eu possa te passar mais informações. No aguardo Avelino Sampaio 21/10/2022 10:18:17 Cassio, a ribbon principal é passada para uma variável publica através da função fncRibbon(). Veja a função sendo chamada na primeira linha da ribbon. [customUI xmlns="..../office/2009/07/customui onLoad="fncRibbon"] Se vc não usa o Invalidate na ribbon do formulário, tire a função fncRibbon() da XML. Se estiver usando o Invalidate na ribbon do formulário, deverá criar uma outra função (frnRibbon2()) com uma outra variável global. Sucesso! Cassio Fabre 21/10/2022 09:55:44 Bom dia, Avelino! Excelentes tutoriais os seus e aprendi bastante com eles, além do Maestro! Meu problema é o seguinte. Eu carrego as ribbons através da tabela tblRibbons, como voce mostrou em um dos artigos. Meu aplicativo não tem um form padrão que fica aberto constantemente, fica apenas a tela vazia do access e com a ribbon ativada de acordo com as permissões do usuário. Como eu nao tenho um form para carregar a ribbon, a maneira que encontrei pra fazer a "rbPrincipal" aparecer foi configura-la como faixa de opção padrão do aplicativo em Opções do Access -> Banco de dados atual. Até aí tudo bem, ela carrega tranquilo. Porém um dos meus forms tem uma ribbon própria, obviamente carregada quando ele é ativado. Essa ribbon carrega normalmente. Porém, quando esse form é desativado junto com a ribbon, voltando para "rbPrincipal", ela simplesmente para de invalidar, só voltando quando reinicio o aplicativo. Qual a solução pra isso? Diego Amaral 20/10/2022 10:56:29 Avelino, bom dia! Estou com um problema, configurei tudo certo meu bd e as ribbons.. No meu pc ele roda perfeitamente, utilizo o access 2010. Mas quando coloco em rede, uma outra pessoa que possui o access 2013 ao tentar abrir da a mensagem de erro da pergunta 13. Eu já ativei o Microsoft Office XX OBJECT LIBRARY no computador dessa outra pessoa, mas mesmo assim o erro persiste. Existem outras referências que precisam ser ativadas? Marcelo Silvestre Zapia 19/10/2022 08:12:27 Avelino, boa tarde. Desenvolvi um sistema no Access 2013, utilizei o monta Ribbons e segui o procedimento de "Não mostrar dicas de tela". Gerei o arquivo .Accde e utilizando o RunTime (em outra máquina), ainda aparece as dicas (na Ribbon). Na minha máquina não aparece (tanto no .accdb como no .accde). Qual o procedimento? Grato... Marcelo Zapia Joaquim M. Neto 06/07/2022 21:36:57 Boa noite, Obrigado vc está correto. está abrindo ok. Muito grato pela sua atenção! Joaquim m. neto 06/07/2022 18:39:50 Boa noite! Fiz alteração no Relatório"Modo Padrão - Visualização de Impressão" , mesmo assim o botões não funcionam, obs: já no próprio montar Ribbons não estão visíveis. Se precisar posso mandar para seu e-mail o arquivo. Avelino Sampaio 06/07/2022 05:21:57 Joaquim, a ribbon só funciona se o relatório estiver no modo "visualização de impressão", portanto troque a configuração do "modo relatório" para o modo "visualização de impressão". No aguardo Joaquim M. Neto 05/07/2022 10:11:03 Bom dia! Eu montei ribbon exportei Menu, Ribbon RblImpressão o botão Zoom está visível sem funcionalidade Ajustar, uma pagina, Duas Pagina e fechar estão visível mas não funciona. Obs: estou usando Access 2013 Avelino Sampaio 05/06/2022 19:10:06 Cesar Sim, pode controlar as guias e os botões. Para isso tem que aprender a utilizar os atributo getVisible. O aplicativo MASTRO, que ofereço na seção downloads, usa desta técnica. A Terceira vídeo-aula do MontaRibbons ensina como utilizar o getVisible. Sucesso! Cesar Araujo 05/06/2022 15:30:10 Construí uma Ribbon com quatro guias e gostaria de saber se é possível fazer com que só apareçam certas guias dependendo do usuários que esteja logado Marcos Moreira 02/05/2022 15:53:56 Boa tarde amigo, Gostaria de saber como direcionar a exportação de um relatório para uma pasta especifica ao usar o comando PublishToPdfOrEdoc. Por padrão o arquivo é enviado para a pasta documentos. Avelino Sampaio 29/04/2022 07:36:37 Gilmar, qual é a versão do seu Access ? Esta usando a tabela USysRibbons para armazenar as ribbons ou tabela simples tblRibbons ? O mais correto seria um front-end para cada máquina. Abra um tópico sobre essa questão lá no nosso fórum: http://www.redeaccess.com.br No aguardo Gilmar 28/04/2022 15:10:14 Boa tarde caro mestre ! Fizemos um projeto utilizando o monta ribbon com menu de impressão e menu principal, quando acessamos o projeto que está em rede e pedimos pra abrir um relatório qualquer, ao fechar esse relatório a ribbon principal não retorna, qual seria a solução para essa situação ? Avelino Sampaio 26/03/2022 07:24:04 Arilson, não consegui visualizar o desejado. Explique de forma diferente. No aguardo Arilson 24/03/2022 13:52:22 Boa tarde mestre Avelino, quero criar um menu personalizado e gostaria de saber que propriedade utilizar para diminuir a aréa da tela para, por exemplo ficar do tamanho da tela de Login do seu aplicativo Telemax grato! Avelino Sampaio 12/03/2022 09:46:12 Gilson, ative a interface de error do Access do cliente e veja se retorna com o erro ao carregar. Ative conforme a questão 9 acima. A versão do Access do cliente é mesma do seu ? No aguardo Gilson Soares 12/03/2022 09:36:58 Boa tarde Avelino! Poderia me ajudar? Personalizei minha Ribbon Access mas ela so aparece meu pc onde personalizei. Quando abro o BD no pc do meu trabalho a Ribbon personalizada nao aparece. O que faço para aparecer a personalização em qualquer pc que eu abri o BD? Abraços Obrigado! Avelino Sampaio 15/02/2022 10:20:53 Willian, configurou o backstage na sua ribbon ? Passe para o meu e-mail a xml da sua ribbon para eu poder analisar. No aguardo Willian Rocha 15/02/2022 09:59:57 Caro Avelino comprei o Monta Ribbons e já criei um projetinho aqui na empresa em que trabalho porém não estou conseguindo executar no Access Runtime 2013 erro: "microsoft access não pode executar a função de retorno fncRibbon". Tem um micro com o runtime 2010 nesse rodou direitinho. O estranho é que criei o projeto no access 2013. O que pode ser? Avelino Sampaio 01/12/2021 10:28:51 Amilton, Neste caso, deverá ser utilizado um formulários Auxiliar e oculto. Vá na seção "Contato" aqui do site e me passe uma mensagem, para eu poder receber seu email. Irei te passar um arquivo exemplo. Amilton 01/12/2021 10:26:15 Estou usando o Access 2010 Obrigado Amilton 01/12/2021 10:04:39 Bom dia Avelino , estou usando 2 guias para teste , principal e relatórios , mas quando clico na guia relatórios , abre o form que preciso , mas volta pra guia principal , coloquei a dentro da função fncAbrirObjeto Select Case tipoObjeto Case 1 'formulário objRibbon.ActivateTab ("guiaRelatórios") mas não funcionou , onde devo indicar a função corretamente Att Amilton Avelino Sampaio 09/10/2021 06:55:20 Marcos, Aqui na seção DICAS do site tem um artigo sobre o uso do FondoAccess.dll, porém parace funcionar bem apenas para a versão 2007. Sucesso! Marcos Sousa 08/10/2021 21:37:54 Prezado Professor Avelino, Estou utilizando os seus ensinamentos/exemplos, num trabalho aqui na empresa. Na tela inicial ficamos com os grupos, os menus e as ribbons na parte superior da tela. Tem como eu preencher o restante da tela inicial com uma figura ou coisa parecida? Desde já, grato. Edson 17/09/2021 19:16:46 Valeu Avelino, mas já procurei em tudo quanto é lugar e esse botão somente desapareceria se configurasse a barra de status para não aparecer, pois isso é fácil, mas o fato é que minha aplicação precisa da barra de status. De qualquer forma valeu pelo empenho. Abraço, Edson Avelino Sampaio 16/09/2021 05:53:56 Edson, no runtime não temos acesso a qualquer tipo de configuração manualmente. Muitas destas configurações vc deve realizar previamente, pelo seu Access completo. Podem também ser alteradas via código (VBA). Vá na seção "dicas" do meu site e leia o artigo "Armazenar valores na lista de propriedades do Banco de Dados", que traz o código de como alterar o titúlo do aplicativo. Vá na seção "tutorias" e leia o artigo "Configurando as "Opções do Access" pelo setOption" Bom estudo! Edson Miranda 15/09/2021 08:29:02 Olá Avelino, no Runtime do Access 2010 como faço para retirar essa mensagem na barra de Status: "Da plataforma Microsoft Access". Obrigado! Avelino Sampaio 13/08/2021 07:48:52 Antonio, Vá na seção Dicas e veja o artigo "Desabilitando a faixa superior do Access" Veja também o tutorial sobre o OPEN, que lhe fornecerá a segurança desejada. Sucesso! Antonio josenilton 11/08/2021 10:47:10 Ola Avelino. Fiz um banco de dados no Access 2010, mas não consigo eliminar a barra de ferramentas superior e como é para uso de vários usuários eles irão alterar meu projeto, como faço para eliminar. Onde fica Arquivos - Opções Avelino Sampaio 17/07/2021 05:46:59 Eduardo, quando tiver duas versões, sempre programe na versão mais antiga. 1) Crie um novo BD 2) Copie as tabelas, consultas e módulos. Faça um teste com este BD no Access 2007 3) Copie os relatórios. Faça um teste com este BD no Access 2007 4) Por último copie um formulário de cada vez e vá testando no Access 2007. Quando der a falha vai saber qual o formulário que causa o problema. 5) Terá que refazer as macro globais pois não são compatíveis entre as versões. Sucesso na sua pesquisa! Abrir um accdb , feito no access 2010 64 bits em access 2007. 16/07/2021 12:49:43 Avelino, boa tarde. Criei uma aplicação para empresa onde trabalho, utilizando o access 2010 64 bits, porém, na hora de rodar, os outros computadores estão com o Access 2007. Tentei instalar o run time 64 bits, mas, não obtive êxito. Gostaria de uma solução diferente de ter que recomeçar meu sistema tudo novamente. Um abraço. Eduardo Souza Adélio Gonzaga 06/07/2021 17:59:10 Prezado Avelino, Quanto mais vejo seu trabalho, mais lhe admiro, meu caro! Continuo dizendo: quando crescer, quero ser como você! Rsss. Se puder, ajude-me em uma situação: Toda vez que fecho qualquer formulário o Access me joga para uma mesma Tab..... Na sua dica 7, acima, você orienta o uso do objRibbon.ActivateTab "NomeDaSuaTab" para manter o foco numa determinada Guia da Ribbon... Pois bem, quero fazer EXATAMENTE O CONTRÁRIO DISSO.. Tenho a impressão que está sempre sendo mantido o foco NA MESMA GUIA e preciso que o foco permaneça na última guia acessada, até que o usuário escolha outra. Pelo que me lembro isso começou a ocorrer quando mudei para o 2010... Pode me ajudar? Tayra 29/06/2021 11:19:20 Olá... Estou conectada a um servidor onde tem instalada a versão 2007 do pacote office. Ao entrar como administrador da rede consigo realizar tudo dentro do Access, porem quando me conecto como um usuário normal ao montar um formulário o botão (Assistente de Botão) não abre, dizendo que algo está desabilitado ou a função with não está instalada!!Como devo proceder??? Att. Avelino Sampaio 01/06/2021 17:38:13 Ricardo, O SELECT esta dentro da condição IF e vc tem avaliar se o seu recorset retorna valor. Copie e cole a linha abaixo no seu navegador para baixar um pequeno exemplo que fiz: http://www.usandoaccess.com.br/fa/EditBox.zip 1) irá entrar com a caixa EditBox Vazia 2) Entre com um valor na EditBox e pressione a tecla ENTER. 3) Abra o formulário e clique no botão. Ao preencher o InputBox irá passar o valor para o EditBox Sucesso! Claudia 01/06/2021 15:33:47 Boa tarde, Avelino Criei um botão na guia Arquivo para abrir um formulario. Este formulario abre em outra guia. Teria como eu fazer com que, ao clicar no botão que criei na guia arquivo, vá automaticamente para a segunda guia sem ter que clicar? Tentei utilizar a função da questão 7, mas não obtive sucesso. Agradeço desde já. Ricardo Ravelli 01/06/2021 10:29:56 Avelino, bom dia. Eu fiz o seguinte procedimento: XML: < editBox id="edtatual" label="Usuário logado:" enabled="true" getText="MyEditBoxCallbackgetText_1"/> VBA: Public Sub MyEditBoxCallbackgetText_1(control As IRibbonControl, ByRef strText) Dim DBs As DAO.Database Dim TmpRst As DAO.Recordset Dim SQL As String Set DBs = CurrentDb() Set TmpRst = DBs.OpenRecordset("SELECT Count(tbl_Ocorrencias.Codigo) AS Quantidade " & _ "FROM tbl_Ocorrencias " & _ "LEFT JOIN tbl_ItensOcorrencias ON tbl_Ocorrencias.Codigo = tbl_ItensOcorrencias.Cod_ocorrencia_fk " & _ "WHERE (((tbl_Ocorrencias.Data_fechamento) Is Null) AND ((tbl_Ocorrencias.Hora_fechamento) Is Null) " & _ "AND ((tbl_ItensOcorrencias.Cod_usuario_fk)= " & Cod_Login & " )) ") If Not ((TmpRst.EOF) Or (IsNull(TmpRst))) Then Select Case control.ID Case "edtatual" strText = CStr(TmpRst!quantidade) End Select End If End Sub Após o login do usuário: gobjRibbon.InvalidateControl ("edtatual") Essa função só funciona quando o sistema é aberto, porém eu preciso alterar o valor desse campo após o login do usuário, uma vez que a consulta se baseia nos items aberto pelo mesmo. O sistema não apresenta nenhum erro, e também náo atualiza os valores. Por favor, você teria alguma idéia para me ajudar a resolver esse problema? Muito obrigado. Ricardo. Avelino Sampaio 01/06/2021 02:53:22 Ricardo Ravelli, use o atributo getText < editBox id="ebx1" label="Entre com o Cep: " getText="fncGetText" maxLength = "8" sizeString = "WWWWW" onChange="fncOnChangeHelp"/> Use a função para limpar o texto ou alterar o texto: Sub fncGetText(control As IRibbonControl, strText) 'Vc pode exibir um texto padrão na caixa de texto ou limpa-la. strText = "" End Sub Para disparar o GET vc tem que usar o INVALIDATE. objRibbon.InvalidateControl ("ebx1") Sucesso! Ricardo Ravelli 31/05/2021 16:49:29 Avelino, boa tarde. Por favor, veja se você pode me ajudar nessa questão: Eu coloquei dois EditBox na minha ribbon que ao carregar o sistema, é inserido dois valores através de uma função. Minha questão é a seguinte: Como eu faço para dar um "refresh" nessa função, uma vez que ela foi carragada com a ribbon? Tem como eu alterar os valores dimanicamente do EditBox já com a Ribbon carregada? Obrigado. Ricardo. Alcir 19/05/2021 20:53:23 Avelino A intenção não é proteger na minha ausência. Trabalhamos em rede e alguns usuários minimizam o aplicativo e as vezes ate esquecem o computador ligado de um dia para o outro. Aproveito horários de intervalo de almoço ou a noite para trocar a base de trabalho quando tem alguma melhoria como inclusão de novas rotinas ou relatórios. Com alguém aberto não consigo trocar...... O objetivo seria fechar mesmo o aplicativo depois de um tempo pré determinado, assim como no exemplo do João Paulo, para poder então trocar a base de trabalho. Obrigado Avelino Sampaio 15/05/2021 05:14:18 Fernanda, verifique se a exportação manual do excel está funcionando pela ribbon do Access. Na ribbon "DADOS EXTERNOS" > no Grupo Exportar > clique no botão Excel Abra o Excel do cliente e verifique se está tudo OK Abra um arquivo do excel e veja se tem algum impedimento. No aguardo Avelino Sampaio 15/05/2021 05:04:31 Alcir, eu teria que verificar o projeto do João Paulo para poder te oferecer uma dica. Se a intenção é proteger o aplicativo na sua ausência, use o botão de logoff para exibir o fornulário de login. Assim só será possivel reabrir o aplicativo com nome do usuário e senha. Sucesso! Alcir 14/05/2021 13:31:17 Boas Avelino Utilizo o Monta Ribbons em diversos bancos. Gostaria de saber se tem como fechar o programa por inatividade por tempo pre-determinado - existe um exemplo do mestre JP do MaximoAccess que fecha o banco depois de 10 minutos - é aplicado a um formulário. - Deveria colocar como função publica e chamar a função em todos formulários, ou fazer de outra maneira? se puder ajudar agradeço Fernanda Macan 09/05/2021 11:05:35 Bom dia Avelino, Uso o Access 2007 runtime e tenho ribbom nos relatórios que exporta para excel. Um cliente que tem Office 2013 está desativando a exportação para excel, mas do word funciona. Nos micros que tem Office 2007 ou 2010 funciona corretamente. Existe alguma incompatibilidade ? Avelino Sampaio 29/04/2021 09:56:34 EIDE, está com o seu BD dividido em back-end e Front-end ? Está exportando para o front-end e verificando a tabela UsysRibbons do front-end ? No aguardo EIDE 28/04/2021 13:45:56 OLA AVELINO CRIEI A RIBBON EXPORTEI MAS QUANDO VOU A TABELA USYS RIBBONS A MESMA NÃO APARECE LÃ NA TABELA O QUE DEVE TER ACONTECIDO. Avelino Sampaio 19/04/2021 06:29:31 PL, Leia os meus artigos e assista as vídeo-aulas que irá entender rapidamente! Bom estudo! PL 18/04/2021 21:10:44 Eu criei um código para as guias, grupos, etc em xml, mas em que lugar é que eu insiro esse código para aplicar o que quero? O código já tenho, o problema é onde colocar. Avelino Sampaio 31/03/2021 06:00:24 Fabio, Abra o HELP CONTROLES do MontaRibbons e selecione a opção "ContextualTabs" Sucesso! Fabio 29/03/2021 09:43:42 Avelino, posso criar uma ribbon para um formulario com todos as funcionalidades , novo, excluir, salvar, alterar na ribbon em vez de usar botoes no formulario??? Se sim, voce tem um exemplo ou um tutorial disponivel? Fabio Pradella Avelino sampaio 27/03/2021 06:51:55 Gabriel, ative a interface de erros. Veja na questão 9 Sucesso! Gabriel Campos 26/03/2021 20:13:00 Avelino, Não consigo criar as ribbons, eu crio a tabela tudo direitinho, mas não acontece nada. O que pode ser? Avelino Sampaio 19/03/2021 05:24:27 Vila, aplicativos feitos em Access não rodam sem o Access presente na máquina. Tem uma opção gratuita no site da Microsoft que vc pode baixar e instalar, que é o ACCESS RUNTIME 2007. Sucesso! Vila 13/03/2021 13:08:29 Como faço para rodar um aplicativo desenvolvido no Access 2007 num outro computador que não esteja instalado o Office? Paulo Sergio 21/02/2021 15:13:20 Avelino, É possível diminuir a área do backstage? É que no 2007, como o botão Office era um menu, construi aplicativos com algumas configurações e o menu não ocupava a tela toda. Agora, no 2010, vejo que o backstage, independente da quantidade de itens, ocupa toda a tela do Access... Avelino Sampaio 19/02/2021 09:55:13 Marcelo, Sim, vc pode carregar varias ribbons e usá-las de acordo com o formulário e/ou relatório aberto. Basta especificar, na lista de propriedades do formulário/relatório , a ribbon que deseja carregar. Se estiver se referindo a ribbon PRINCIPAL, não é possível carregar mais de uma. Neste caso tem que montar uma ribbon única e alterá-la em tempo de execução, para que visualize apenas guias, grupos e botões desejados. Sucesso! Marcelo David 16/02/2021 22:46:49 Avelino, há possibilidade de carregar mais de uma Ribbon na inicialização do aplicativo? Jorge Robalinho 21/01/2021 16:11:58 Estou usando o controlo: Application.CommandBars.ExecuteMso "PublishToPdfOrEdoc" e queria que a caixa de dialogo viesse já com um nome pré-definido por mim... o que ele me dá é o nome por defeito do relatório... Edson Miranda 10/01/2021 18:01:26 No Runtime do Access 2010 como faço para habilitar o botão de Ajuda e como faço para retirar a mensagem na barra de Status "Da plataforma Microsoft Access". Obrigado! Alcir 08/10/2020 05:53:09 Bom dia Avelino. Estou utilizando o sistema do login do Maestro. Como devo fazer para que na abertura seja carregado o nome do ultimo usuário logado na maquina, visto termos muitos usuários . Ai já boto o foco direto na senha. Abraço Avelino Sampaio 29/09/2020 05:59:32 Olá Alcir Acrescente o atributo visible=”true” em todos os botões Exemplo: [button idMso = "ExportExcel" label = "Excel" size = "large" visible=”true” /] Sucesso! Alcir 28/09/2020 20:24:37 Avelino, boa noite Parabéns pelo ótimos trabalhos que vens desenvolvendo e colocando-os a disposição dos usuários. Estou utilizando o Monta Ribbons com o Access 2010 e deparei com um problema. exportar arquivo para..... [button idMso = "PublishToPdfOrEdoc" size="large" label="PDF"/] [button idMso = "ExportExcel" label = "Excel" size = "large" /] [button idMso = "ExportWord" label = "Word" size = "large" /] [button idMso = "ExportTextFile" label = "Texto" size = "large" /] No modo accdb aparecem todos acima indicados ( sem problema algum ) No modo accdr aparece somente o "PDF" é possivel ter as exportações liberadas em accdr ? Abraço! Avelino Sampaio 14/09/2020 08:53:20 Elizeu, na seção Dicas, aqui do site, veja o comentário 3 da dica "Como carregar o seu menu sem que ele vá para lista de suplementos" Sucesso! Elizeu Farias 14/09/2020 08:29:18 Bom dia Avelino como faço para ativar somente a guia suplementos em uma ribbon? Herbeth Morais Costa 15/06/2020 17:33:22 Ok, vou testar, grato pela atenção. Avelino Sampaio 15/06/2020 10:36:27 Herbeth, vá no meu tutorial "CurrentProject.isTrusted" e adapte o código fornecido, no seu projeto. sucesso! Herbeth Morais Costa 15/06/2020 10:09:54 Avelino, mais uma dúvida, na empresa usávamos o runtime do office 2007 e em algumas máquinas o runtime deixou de processar códigos VBA, ele inicia a interface, mas não processa os códigos, você sabe dizer como se pode evitar isso? Agradeço a ajuda. Herbeth Morais Costa 15/06/2020 06:58:01 Ok Avelino, ótima dica, pois lá vamos trabalhar com as duas versões à princípio, espero que dê tudo certo. Muito obrigado, Avelino. Avelino Sampaio 14/06/2020 16:23:36 Herbeth, Outra coisa - Se o seu aplicativo tiver que rodar tanto no Access 2007 quanto no Access 2010, baixe o aplicativo Maestro, da seção download, que tem o projeto da ribbon para esse sistema híbrido, inclusive com os códigos XML para a limpeza do backstage. Avelino Sampaio 14/06/2020 16:17:15 Herberth, A aba arquivo só pode ser oculta se desabilitar por completo o sistema de ribbons. Veja como configurar desta forma na pergunta 8 acima. Já o conteúdo da aba arquivo, chamado de área backstage, pode ser totalmente "limpo" e remodelado conforme sua necessidade. Baixe o MontaRibbons e vc terá vários exemplos de como configurar a área backstage. Sucesso! Herbeth Morais Costa 13/06/2020 17:01:07 Boa tarde Avelino, Eu gostaria de saber como eu poderia ocultar a aba Arquivo do runtime do Access 2010, pois começamos a trabalhar com o runtime da versão 2010 esses dias e verifiquei que do 2007 para o 2010 existe esta diferença que eu descobri até agora. Teria como você me dizer qual o código em XML que eu usaria para ocultar esta aba? Agradeço desde já a sua ajuda. Avelino Sampaio 01/06/2020 03:27:53 Juca, trate o subFormulário, nas permissões, como se fosse um formulário independente. No esqueça de colocar a função fncPermissões(me) no evento “Ao carregar” deste subformulário. Se não tiver êxito , volte a entrar em contato pelo meu email. Juca 31/05/2020 21:43:51 Boa noite Professor, Em seu exemplo de segurança, você seleciona on usuário, o formulário e administra as permissões, se pode ou não incluir, alterar, excluir,... E em um formulário com um subformulário, qual será a forma de definir as permissões. Tenho como definir para o formulário principal e ao mesmo tempo ser atribuido ao subformulário. Um grande abraço, Juca Wilton Marles 26/02/2020 14:43:25 Muito bom, isso irá ajudar com certeza! |