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.

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

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.

Selecione Microsfot 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 SubO 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:

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.

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 |
|---|---|
| Todas as informações necessárias para você adquirir esta incrível ferramenta. | |
|
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
|
|
|
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). |
|
| Uso de imagens externas (GIF, JPEG, PNG e ICO) | |
| 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. |