Logo_Access_global_380x114Favicon_Access_global_180x180Logo_Access_global_380x114Logo_Access_global_380x114
  • Home
  • University
    • Destellos formativos
  • Labs
  • TV
  • Secciones
    • El mundo de Access
    • Explorando VBA
      • Artículos sobre VBA
      • Un trocito de código
    • Entrevistas
      • Profesionales de Access
    • El rincón de Excel
    • Bases de datos
      • MS SQL
      • MySQL
      • postgreSQL
      • SQLite
    • Clases magistrales
    • Utilidades hechas con Access
  • Access en el mundo
  • ¿Quiénes somos?
  • Cómo colaborar
  • Eventos
✕
            No hay resultados Mostrar todos los resultados
            VBA: acCmdFilterMenu
            08/05/2022
            VBA: conocer código postal y coordenadas con la API de Google Maps
            10/05/2022
            Mostrar todos

            VBA: gestionamos el filtro por formulario

            Publicado por José Bengoechea
            Categorías
            • Destellos formativos
            Etiquetas
            • acCmdApplyFilterSort
            • acCmdFilterByForm
            • acCmdRemoveFilterSort
            • DoCmd
            • Filtros
            • RunCommand
            • VBA
            'Este cloque de código es a nivel de módulo
            Option Compare Database
            Option Explicit
            
            Sub CrearFiltros()
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vba-gestionamos-el-filtro-por-formulario
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : CrearFiltros
            ' Autor original    : Luis Viadel | https://cowtechnologies.net
            ' Creado            : abril 22
            ' Propósito         : crear un menú contextual
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Referencia        : https://docs.microsoft.com/en-us/office/vba/api/access.application.commandbars
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Test:             : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test. Copiar el bloque siguiente al
            '                     portapapeles y pega en el editor de VBA. Descomentar la línea que nos interese y pulsar F5 para ver su funcionamiento.
            '
            ' Sub CheckInternet_test()
            '
            '        Call CrearFiltros
            '
            ' End Sub
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            
            Dim cmdMenu As Office.CommandBar
            Dim cmdSubmenu As CommandBarControl
            Dim NewControl As CommandBarButton
            
            On Error Resume Next
            
            Set cmdMenu = CommandBars.Add("Filtros de formulario", msoBarPopup, False, True)
            
                Set NewControl = cmdMenu.Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
                    With NewControl
                        .Caption = "Filtrar por formulario"
                        .OnAction = "=FiltroFormTest()"
                        .BeginGroup = True
                        .FaceId = 327
                        .Style = msoButtonIconAndCaption
                    End With
                Set NewControl = Nothing
                
                Set NewControl = cmdMenu.Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
                    With NewControl
                        .Caption = "Quitar filtro"
                        .OnAction = "=FiltroFormTest()"
                        .BeginGroup = True
                        .FaceId = 327
                        .Style = msoButtonIconAndCaption
                    End With
                Set NewControl = Nothing
                
            Set cmdMenu = Nothing
                
            End Sub
            
            Function FiltroFormTest()
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vba-gestionamos-el-filtro-por-formulario
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : FiltroFormTest
            ' Autor original    : Luis Viadel | https://cowtechnologies.net
            ' Creado            : abril 22
            ' Propósito         : selecciona la acción dependiendo del cpation del control que realiza la llamada
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            Dim strTest As String
            Dim ctrl As CommandBarControl
            
            Set ctrl = CommandBars("Filtros de formulario").Controls(1)
              strTest = ctrl.Caption
              Select Case strTest
                Case "Filtrar por pormulario"
                  DoCmd.RunCommand acCmdFilterByForm
                  DoCmd.RunCommand acCmdClearGrid
                  ctrl.Caption = "Aplicar filtro"
                  CommandBars("Filtros de formulario").Controls(2).Visible = True
                
                Case "Aplicar filtro"
                  DoCmd.RunCommand acCmdApplyFilterSort
                  ctrl.Caption = "Quitar filtro"
                  CommandBars("Filtros de formulario").Controls(2).Visible = False
                
                Case "Quitar filtro"
                  DoCmd.RunCommand acCmdRemoveFilterSort
                  ctrl.Caption = "Filtrar por pormulario"
              End Select
            
            End Function
            'Este cloque de código es a nivel de formulario
            Option Compare Database
            Option Explicit
            
            Private Sub cuepob_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
            
            If Button = acRightButton Then
                CommandBars("Filtros de formulario").ShowPopup
                CommandBars("Filtros de formulario").Controls(2).Visible = False
            End If
            
            End Sub
            
            Private Sub Form_Open(Cancel As Integer)
            
            Call CrearFiltros
            
            CommandBars("Filtros de formulario").Controls(2).Visible = False
            
            End Sub
            
            Private Sub nombrecuenta_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
            
            If Button = acRightButton Then
                CommandBars("Filtros de formulario").ShowPopup
                CommandBars("Filtros de formulario").Controls(2).Visible = False
            End If
            
            End Sub
            
            ¡Ver en el repositorio!
            Compartir
            17
            José Bengoechea
            José Bengoechea

            Entradas relacionadas

            31/03/2023

            Tratamiento de errores: otras herramientas útiles


            Leer más
            30/03/2023

            Tratamiento de errores: compilación condicional


            Leer más
            29/03/2023

            Tratamiento de errores: errores personalizados


            Leer más

            Deja una respuesta Cancelar la respuesta

            Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

            ETIQUETAS

            Access API BD Botones ComboBox Consultas CountOfLines CStr Diseño DoCmd Excel Exportar Fecha FileSystemObject Filtros For Each...Next Formulario Formularios Funciones Funciones de dominio GetFolder GetWindowRect Google maps Informes InStr Kill Left Listbox Mid Módulos Node ProcCountLines Procedimientos ProcOfLine References Replace Ribbon RunCommand Seguridad Split SysCmd Tablas TreeView VBA VBIDE

            ÚLTIMAS ENTRADAS

            • 0
              Tratamiento de errores: otras herramientas útiles
              31/03/2023
            • 0
              Tratamiento de errores: compilación condicional
              30/03/2023

            ¿QUIERES PUBLICITAR TU EMPRESA AQUÍ?

            SUSCRÍBETE A NUESTRO
            NEWSLETTER

            Recibirás información puntual sobre el mundo de Access y VBA

            ¡Próximamente!

            Promovemos el uso de Access y de la programación en VBA en todo el mundo

            Centro de conocimiento


            Toda la sabiduría de los mejores programadores de Access y VBA a tu alcance.

            Legal

            Política de privacidad

            Condiciones de uso

            Condiciones del redactor

            ®Access Global 2021 | All right reserved
                      No hay resultados Mostrar todos los resultados