AS EMPRESAS ESTÃO "DESESPERADAS" POR ESTE TIPO DE PROFISSIONAL... - VOCÊ É UM DELES?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI - O Conhecimento que Vira Dinheiro - CLIQUE AQUI

Você está em: PrincipalArtigosSérie "Como Fazer": Menus no Access › Lições : 08
Quer receber novidades e e-books gratuitos?
« Anterior Δ Página principal ¤ Índice Próxima »
Criando menus, barras de comando e botões personalizados no Access usando VBA
Autor: Robert Friedrick Martim
Lição 007 - Utilizando os FaceIDs do Office no Access

Nos exemplos anteriores em vários casos foi colocado um FaceID no botão. O único objeto do menu que pode receber a carinha é o botão.

O Access possui milhares dessas carinhas que podem ser utilizadas em nossos projetos. A figura abaixo mostra algumas destas faces listas em uma barra de comando/ferramenta:


Figura 7-1

Obviamente que primeiramente precisamos saber o número de cada face antes de podermos utilizá-las. No módulo sobre o mesmo assunto no Word, mostro como listar as faces em um documento do Word.

No Access, farei algo diferente. As faces serão listadas em uma barra de comando como na figura acima. Na barra de comando adicionaremos dois botões ao final para navegação pelas faces e id’s das faces.

Crie um novo módulo onde iniciaremos pelas seguintes rotinas:

Const NOMEBARRA As String = "FACES"

 

Sub listarFaces()

    Call geral(False, False, True)

End Sub

 

Sub Avançar()

    Call geral(True, False, False)

End Sub

 

Sub Voltar()

    Call geral(False, True, False)

End Sub

A lista dos FaceIDs segue a mesma lógica para criação inicial, avanço e retrocesso. Portanto, teremos apenas uma rotina geral que recebe os argumentos True e False. Os argumentos são utilizados para decidir o que listar.

Antes de continuar, não esqueça de instalar as referências dos objetos do Office.

Dito e instalado as referências, podemos acrescentar o código que listará os IDs na barra de comando:

Sub geral(Avançar As Boolean, Voltar As Boolean, iniciar As Boolean)

    Dim cmdBar  As CommandBar

    Dim btn     As CommandBarButton

 

    On Error Resume Next

'   Define a barra de comando cmdBar como sendo a atual

    Set cmdBar = Application.CommandBars(NOMEBARRA)

 

'   define o botão como sendo

    Set btn = cmdBar.Controls.Item(55)

 

'   Pega o valor inicial do FaceID na lista para iniciar o loop

    IDFace = CLng(Right(btn.TooltipText, Len(btn.TooltipText) - 11))

   

'   Se for para avançar, defini o último FaceID a ser mostrado

'   na barra de comando

    If Avançar = True And Voltar = False And iniciar = False Then

        final = IDFace + 56

       

'   Se for para voltar, define o intervalo dos FaceIDs

    ElseIf Avançar = False And Voltar = True And iniciar = False Then

   

        final = IDFace - 56

        IDFace = final - 55

       

'       Se o valor do FaceID for negativo, então

        If IDFace < 0 Then

'           Iniciar o FaceID em 1

            IDFace = 1

'           E o final como sendo 56

            final = 56

        End If

 

'   Se for início, então

    ElseIf Avançar = False And Voltar = False And iniciar = True Then

'       Iniciar o FaceID em 1

        IDFace = 1

'       E o final como sendo 56

        final = 56

    End If

 

'   Remove a barra de comando

    Application.CommandBars(NOMEBARRA).Delete

 

'   Recria a barra

    Set cmdBar = Application.CommandBars.Add(Name:=NOMEBARRA, _

      Temporary:=True)

 

'   Inicia o loop

    Do

'       Adiciona um botão a barra de comando

        Set btn = cmdBar.Controls.Add(Type:=msoControlButton)

        With btn

'           Adiconar a face do botão

            .FaceId = IDFace

'           Define a largura do botão

            .Width = 30

'           Define o texto de ajuda que mostrará o ID do face

            .TooltipText = "ID número: " & IDFace

        End With

'       Adicionar 1 ao FaceID anterior e reinicia o loop

        IDFace = IDFace + 1

'   Até quando o valor do ID da face seja meno que o último

'   número da lista

    Loop While IDFace < final

   

'   Cria os botões de navegação

    Set btn = cmdBar.Controls.Add(msoControlButton)

        With btn

            .Caption = "<< Voltar"

            .Width = 105

            .OnAction = "Voltar"

            .Style = msoButtonCaption

            .State = msoButtonDown

        End With

       

    Set btn = cmdBar.Controls.Add(msoControlButton)

        With btn

            .Caption = "Avançar >>"

            .Width = 105

            .OnAction = "Avançar"

            .Style = msoButtonCaption

            .State = msoButtonDown

    End With

 

'   Com a barra de comando

    With cmdBar

'       Define a largura fixa

        .Width = 240

'       Mostra a barra

        .Visible = True

'       Trava a barra

        .Protection = msoBarNoResize

    End With

   

End Sub

Além das carinhas disponibilizadas com o Access podemos também utilizar as nossas carinhas personalizadas. Para utilizar as carinhas disponíveis com o Access basta seguir os exemplos anteriores. Porém, para criar as nossas próprias carinhas precisamos desenvolver nosso código um pouco. A figura abaixo mostra uma barra de comando contendo FaceIDs personalizadas:


Figura 7-2

Faces personalizadas

Para se criar este tipo de temos que passar por dois processos:

  1. Copiar a figura
  2. Colar a figura no botão

Criar faces personalizadas no Access é um pouco mais complicado do que nos outros aplicativos do Office. O problema ocorre porque um banco de dados é um semi-aplicativo, isto que dizer que você não pode abrir mais de um projeto (documento) ao mesmo tempo na mesma instância do Access.

Uma grande vantagem do Office é que todos os aplicativos são bem integrados. Sendo assim fica relativamente fácil utilizar ferramentas dos vários aplicativos que compõem o Office como recursos externos. Se você alguma vez programou em VB, você deve ter notado isso.

No exemplo que segue utilizo o Excel como o recurso externo. Em uma planilha criamos várias figuras. As figuras podem ser desenhadas (como no exemplo abaixo) ou importadas de arquivos qualquer:


Figura 7-3

Para que o recurso não fique visível, você pode modificar a propriedade Oculto do arquivo Excel. Se você abrir a pasta recursos não há nada lá. Porém, se você for até Painel de Controle à Opções de pasta à Modo de exibição e selecionar a opção Mostrar pastas e arquivos ocultos você verá um arquivo Excel chamado ids.xls.

Acima, temos oito figuras distintas que utilizaremos para criar a barra de comando personalizada como mostrado anteriormente. Para o que desejamos fazer, precisamos dar nomes que as figuras. O ideal é que os nomes sejam em séria. Neste caso específico, os nomes são fig1, fig2, fig3, fig4, fig5, fig6, fig7 e fig8.

Como o processo de copiar envolve a seleção do objeto a ser copiado, precisamos levar isso em conta no nosso código. Além disso, tendo em vista que copiamos estas figuras para uma planilha em nossa pasta de trabalho precisamos fazer referência a esta pasta também.

Antes de continuar, instale as referências do Microsoft Excel x.x. Object Library e do Microsoft Office x.x. Object Library.

Sendo assim, o código que resolve nosso problema pode ser dado por:

Public Const NOMEBARRA As String = "Carinhas personalizadas"

 

Sub facePersonalizada()

 

'   Dimensiona os objeto do Excel

    Dim XL      As Excel.Application

    Dim wb      As Excel.Workbook

 

'   Dimensiona os objetos da barra de comando

    Dim cmdbar  As CommandBar

    Dim btn     As CommandBarButton

      

'   Instancia os objetos do Excel

    Set XL = CreateObject("Excel.Application")

    Set wb = XL.Workbooks.Open(CurrentProject.Path & "\recursos\ids.xls")

   

    On Error Resume Next

'   Remove a barra de comando anterior se ela existir

    Application.CommandBars(NOMEBARRA).Delete

   

'   Instancia o objeto cmdbar

    Set cmdbar = Application.CommandBars.Add(NOMEBARRA, msoBarFloating)

   

'   Inicia o loop

    For i = 1 To 8

'       Seleciona o primeira figura na planilha

        wb.Sheets(1).Shapes("fig" & i).Select

'       Copia a figura

        Selection.Copy

'       Instancia o botão

        Set btn = cmdbar.Controls.Add(Type:=msoControlButton)

'           Com o botão

            With btn

'               Define o rótulo

                .Caption = "Meu nome é fig" & i

'               Define a largura

                .Width = 30

'               Cola a face copiado no botão

                .PasteFace

            End With

    Next i

 

'   Mostra a barra de comando

    cmdbar.Visible = True

 

'   Fecha a pasta de trabalho do Excel

    wb.Close

    Set wb = Nothing

 

'   Fecha o Excel

    XL.Quit

    Set XL = Nothing

   

End Sub

« Anterior Δ Página principal ¤ Índice Próxima »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

MEGA FORMAÇÃO EM INFRAESTRUTURA DE TI

(Online, Vitalício, Prático e Atualizado)!

  • Chega de ser Ignorado pelo Mercado!

  • A vida não vai Melhorar Sozinha!

  • Quem domina infraestrutura, domina o Mercado.

  • Com esta Formação você vai Dominar o Conhecimento e torne-se o Profissional que as Empresas estão Buscando, "desesperadamente", mas não estão encontrando.

NÃO PROCURE VAGAS, SEJA PROCURADO!

 

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

Para Todos os Detalhes, Acesse:

Curso Completo de Excel - Curso Online com Certificado - 925 Vídeo Aulas - 22 Cursos - 120:42 horas

 

https://juliobattisti.com.br/curso-infra-ti.asp

 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2026 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI