Vídeo - Criando Ribbons - parte 2 ( English Version )

Aonde as Ribbons ficam armazenadas ?

As ribbons podem ficar armazenadas em três locais distintos:

1 - numa tabela de sistema, de nome USysRibbons que você mesmo deve criá-la;
2 - numa tabela comum, com qualquer nome que você deseje dar a ela;
3 - fora do Access, num arquivo com extensão XML.

Quais campos devemos criar nas tabelas ?

id - AutoNumeração;
RibbonName - Texto - 255;
RibbonXml - Memorando.

Qual é a diferença entre a tabela de sistema e a tabela comum ?

Na tabela de sistema UsysRibbons , as ribbons já são carregadas no seu aplicativo , sem a necessidade de qualquer programação.  Seus nomes aparecem na lista de propriedades dos objetos e na configuração de inicialização do aplicativo.

 A figura abaixo apresenta a configuração de inicialização da Ribbons, que fica nas Opções do Access em Banco de Dados Atual.

Carregando a ribbon na inicialização do Access

 

Aparecem também na lista de propriedades de formulários e relatórios:

Configurando propriedade Faixa de Opções

 

Como carregar no sistema, as ribbons armazenadas de tabela comum (tblRibbons) e do arquivo XML?

Você deve usar a macro AutoExec para executar uma função que carregue na inicialização do aplicativo, as ribbons armazenadas  na tabela ou arquivo XML.

Veja o código exemplo que carrega as ribbons no sistema, armazenadas na tabela tblRibbons:

Public Function fncCarregaRibbon()
Dim rsRib As DAO.Recordset
On Error GoTo TrataErro
'-----------------------------------------------------------------
'Esta função carrega as ribbons armazenadas na tabela tblRibbons,
'que deve ser chamada pela macro autoexec
'
'Crie a macro autoexec, selecione a ação EXECUTARCÓDIGO
'e escreva o nome da função no argumento: fncCarregaRibbon()
'------------------------------------------------------------------
Set rsRib = CurrentDb.OpenRecordset("tblRibbons", dbOpenDynaset)
Do While Not rsRib.EOF
  Application.LoadCustomUI rsRib!RibbonName, rsRib!RibbonXml
  rsRib.MoveNext
Loop
rsRib.Close
Set rsRib = Nothing

Sair:
  Exit Function
TrataErro:
  Select Case Err.Number
    Case 3078
      MsgBox "Tabela não encontrada...", vbInformation, "Aviso"
    Case Else
      MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, _
      vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
  End Select
  Resume Sair:
End Function

Agora, observe o código exemplo que carrega as ribbons no sistema, armazenadas no arquivo XML:

 

Public Function fncCarregaRibbonXml()
Dim f As Long
Dim strText As String
Dim strOut As String
Dim rsXml As DAO.Recordset
On Error GoTo TrataErro

'------------------------------------------------------------------------------
'Esta função carrega as ribbons de arquivos XML,
'que deve ser chamada pela macro autoexec
'
'Crie a macro autoexec, selecione a açõa EXECUTARCÓDIGO
'e escreva o nome da função no argumento: fncCarregaRibbonXml()
'
'Crie uma tabela de nome tblRibbonsXml com os campos:
'RibbonName - Este campo você armazena o nome que deseja dar a ribbon
'RibbonXml - Este campo você informa o nome do arquivo Xml
'
'Este exemplo pressupõe que você esteja com os arquivos XML no 
'mesmo local do seu BD
'------------------------------------------------------------------------------
f = FreeFile
Set rsXml = CurrentDb.OpenRecordset("tblRibbonsXml", , dbOpenDynaset)
Do While Not rsXml.EOF
   Open CurrentProject.Path & "\" & rsXml!RibbonXml For Input As f

   Do While Not EOF(f)
      Line Input #f, strText
      strOut = strOut & strText & vbCrLf
   Loop

   Application.LoadCustomUI rsXml!RibbonNome, strOut
   strOut = ""
   strText = ""
   f = FreeFile
   rsXml.MoveNext
Loop

Sair:
   Exit Function
TrataErro:
   Select Case Err.Number
      Case 3078
         MsgBox "Tabela não encontrada...", vbInformation, "Aviso"
      Case Else
         MsgBox "Erro: " & Err.Number & vbCrLf & Err.Description, _
         vbCritical, "Aviso", Err.HelpFile, Err.HelpContext
   End Select
   Resume Sair:
End Function

É preciso referenciar uma classe do Office

Para se ter acesso às propriedades das ribbons pelo vba é necessário referenciar a classe Microsoft Office 12.0 Object Library.

Abra o VBA e no menu Ferramentas, clique em Referências.

 

Alterando referências do VBA

 

Selecione Microsfot Office 12.0 Object Library

 

Referência Microsoft Office 12.0 Object Library

 

Qual atributo devemos usar para dar funcionalidade aos botões de uma ribbon ?

O atributo utilizado para isso é o onAction.  Com ele podemos chamar uma função ou uma macro para executar uma determinada ação, como por exemplo , a abertura de um formulário.

É aqui que você verá a funcionalidade do id, do qual falei bastante  na primeira aula.

Um exemplo de controle Button com o atributo onAction:

<button
id = "btClientes"
imageMso = "DistributionListSelectMembers"
label = "Clientes"
onAction = "fncOnAction"
/>

Agora, observe o código da função fncOnAction:

Public Sub fncOnAction(control As IRibbonControl)

Select Case control.Id
   Case "btClientes"
      Docmd.OpenForm "frmClientes" 'Abre formulário cliente
   Case Else
       MsgBox "Você clicou no botão " & control.Id, vbInformation, "Aviso"
End Select

End Sub

O control.id tem o valor Id do botão que foi clicado e com o SELECT, configuramos o comando adequado a ser aplicado para o botão acionado.

 

Conheça o controle splitButton:

O controle splitButton em conjunto com o controle buttom são os controles mais usados e suficientes para a maioria dos projetos.

Veja na figura, um splitButton:

Ribbon personalizada - exemplo splitButton

 

 

Observe abaixo, a estrutura do splitButton e veja que ele trabalha em conjunto com os controles MENU e BUTTON.  O exemplo desta montagem, você verá na vídeo-aula.

 

Arquitetura controle splitButton

 

Aplicativo exemplo

Montei um pequeno arquivo exemplo para você estudar e exercitar esta aula. Este arquivo exemplo inclui o controle de usuários que é explicado neste artigo.

Vídeo-aula

Nesta vídeo-aula, você irá aprender como configurar o controle splitButton.  Irá acompanhar como exportar as ribbons para o aplicativo exemplo e por fim, aprenderá como configurar a função que dá funcionalidade aos botões da ribbon.

Como EXIBIR a vídeo-aula em tela cheia?

1. clique na seta executar da tela abaixo para iniciar a exibição do vídeo;

2. dê dois cliques rápidos na tela, quando o vídeo começar a ser exibido.

 

Introdução:

As presentes Vídeos-aulas apresentam uma visão estrutural básica sobre ribbons e pretendem abrir a sua mente para o entendimento do que é possível ser feito com esta fácil programação.
 

Links

Temas abordados

MontaRibbons

Todas as informações necessárias para você adquirir esta incrível ferramenta.

Vídeo-aula 1


Breve apresentação do MontaRibbons
Noção estrutural da xml empregada
Como desabilitar toda a faixa superior do Acess
Usando imagens da galeria do Office
Usando controles internos do Office
Personalizando a barra de ferramentas de acesso rápido
Personalizando o Botão Office
Como criar uma ribbon personalizada
 

Vídeo-aula 3


Alterando os controles em tempo de execução, usando os atributos get
Como configurar a ribbon para a troca de idioma
Como ocultar/desabilitar os botões da ribbon, em função do usuário logado
 
Para saber como montar o controle personalizado de acesso de usuários, utilizado no arquivo exemplo desta aula, leia o artigo.
 
O arquivo exemplo desta vídeo-aula se encontra na pasta [exemplos] do MontaRibbons. O nome do arquivo é Maestro_idiomas.accdb
(disponível somente para quem adquirir o MontaRibbons).

 

Vídeo-aula 4

Uso de imagens externas (GIF, JPEG, PNG e ICO)

Vídeo-aula 5

Uso de imagens externas (GIF, JPEG, PNG e ICO) armazenadas em tabela local

 

 

 


17 comentários

Márcio   3/10/2009 15:32:27

Ótima video aula!

Pedro   13/10/2009 16:04:45

Excelente aula.
Estou ansioso pela 3ª aula!

JBSR-Kartoffel   16/10/2009 15:09:48

Através de aplicações assim que dá orgulha de ser brasileiro.
Eu já vasculhei a Net em busca de ferramentas para essa mesma função. Não existe ferramenta com essa grau de facilidade e com o MELHOR custo benefício.

Nosso companheiro Avelino está de parabens com essa ferramenta.

Avelino Sampaio   20/10/2009 09:59:47

Olá JBSR,

Realmente, esta talvez seja a primeira ferramenta criada em Access com este propósito.

O que mais me deixa feliz é o fato do MontaRibbons , no só servir como um assistente na criação das Ribbons, mais também de ser uma ferramenta, que proporciona ao utilizador, uma rápida curva de aprendizagem no uso da XML empregada.

Sucesso

JUJU   2/11/2009 17:55:28

AI QUE CHIQUE, GOSTEI, E O TIPO DE FERRAMENTA QUE SEMPRE QUIS, TODA COLORIDA CHEIA DE ENFEITE, MUITO BOA.
JÁ TO USANDO, MUITO BOA
BEIJOS
JUJU
BAIHA

Alan   2/12/2009 13:07:32

Avelino,
Existe limite para a quantidade de ribbons?

Alan   2/12/2009 13:17:24

Desculpa me expressei não me expressei bem.
Existe limite de guias em uma ribbon?

Avelino Sampaio   2/12/2009 16:19:27

Alan,

Não li a respeito se tem limite mas fiz um teste aqui com 11 guias e funcionou sem problemas.

Considero 11 guias até uma quantidade excessiva. Portanto devendo atender a qualquer projeto

Sucesso

Avelino Sampaio   2/12/2009 16:25:40

Alan,

lembrando que você pode montar uma ribbom específica para cada formulário. Quando você então carrega um formulário de pedidos, por exemplo, a ribbon deste formulário é carregada, substituindo a ribbon principal. Quando fechar o formulário de pedidos a ribbon principal volta a aparecer.

Sucesso

thiago   5/12/2009 11:45:35

Olá,


Como faço para adquirir o software monta ribbons.

Parabéns pelo trabalho.

Alan    9/12/2009 13:16:23

Boa tarde, tudo bem!

Eu mudei a forma de montar as ribbons. Optei por fazer uma Ribbon utilizando os sliptbutton, atendeu bem o que eu queria.

Mas, aproveito para lhe perguntar. Você tem algum exemplo ou sabe como deixar nos buttons e na ribbons imagens de sua escolha.

Abraços

Alan.
alan.silva@saofrancisco.edu.br

JUNIOR ROCHA   10/12/2009 01:36:41

Amigo como compro o programa?
junior@spacedigital.com.br
Aguardo URGENTE..

Avelino Sampaio   10/12/2009 06:10:48

Junior Rocha,

Você pode comprar fazendo um depósito ou através de boleto bancário.

Mandei pro seu email todos os detalhes.

Grato pela sua decisão de compra e garanto que foi um ótimo investimento na sua profissão.

Sucesso

Avelino Sampaio   10/12/2009 06:28:57

Alan,

compra o MontaRibbons que eu te ofereço toda a assessoria necessária.

Aproveita que ano que vem o valor do aplicativo vai subir de preço.

Sucesso

Aldo Pini Junior   21/12/2009 23:26:04

Olá Avelino, vc pode me mandar os dados para depósito? Meu email é aldopini@yahoo.com.br

No aguardo

Avelino Sampaio   22/12/2009 06:56:40

Aldo,

te passei os dados

Obrigado

Milquizedeque Almeida   18/5/2010 13:28:32

Olá avelino.

Montei uma ribbon no meu projeto numa boa. Realmente uma ferramenta incrível.
Minha dúvida
Se precisar alterar a ribbon que já está no projeto. Qual é o melhor caminho? No próprio access? Ou devo voltar ao montaRibbon? Se voltar, perderei as modificações que já fiz nos códigos quando transferir a nova?

Como posso usar imagens alem das do montaRibbon?

Abração e parabéns pelo programa.


Envie seu comentário: