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
            VBIDE series (Módulos): exportar módulo
            10/02/2023
            VBIDE series (Procedimientos): agregar procedimiento
            14/02/2023
            Mostrar todos

            VBIDE series (Procedimientos): Listar procedimientos

            Publicado por Alba Salvá
            Categorías
            • Destellos formativos
            Etiquetas
            • CodePane
            • CountOfDeclarationLines
            • CountOfLines
            • Lines
            • Listar
            • Parent
            • ProcBodyLine
            • ProcCountLines
            • Procedimientos
            • ProcOfLine
            • ProcStartLine
            • VBIDE
            Option Compare Database
            Option Explicit
            
            Public Enum EnuTipos
                vbext_pk_Proc = 0
                vbext_pk_Let = 1
                vbext_pk_Set = 2
                vbext_pk_Get = 3
            End Enum
            
            #If False Then
                Dim vbext_pk_Proc, vbext_pk_Let, vbext_pk_Set, vbext_pk_Get
            #End If
            
            Public Sub ListadoProcedimientos(frm As Form)
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vbide-series-procedimientos-listar-procedimientos/
            '                     Destello formativo 264
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : ListadoProcedimientos
            ' Autor original    : Alba Salvá
            ' Creado            : desconocido
            ' Adaptado por      : Luis Viadel
            ' Propósito         : mostrar un listado con todos los procedimientos de nuestro programa
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Referencias       : Microsoft Visual Basic for Applications Extensibility 5.3
            '                     C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB
            '                     {0002E157-0000-0000-C000-000000000046}
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Información       : https://learn.microsoft.com/en-us/office/vba/language/glossary/vbe-glossary#code-pane
            '                     https://learn.microsoft.com/en-us/office/vba/api/access.module
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Test:             : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test.  Copia el bloque siguiente al
            '                     portapapeles y pega en el editor de VBA en la carga de un formulario.
            '                     Descomenta la línea que te interese y pulsa F5 para ver su funcionamiento.
            '
            'Private Sub Form_Load()
            '
            '    ListadoProcedimientos Me
            '
            'End Sub
            '
            '---------------------------------------------------------------------------------------------------------------------------------------------------
            Dim vbc As VBIDE.VBComponent
            Dim lngStartLine As Long
            Dim lngProcTyp As Long
                
                frm.lstProc.RowSource = ""
                
                For Each vbc In Application.VBE.ActiveVBProject.VBComponents
                    
                    frm.lstProc.AddItem vbc.Name
                    
                    With vbc.CodeModule
            'Propiedades de CodeModule
            '            Debug.Print "Módulo: " & .CodePane.CodeModule
            '            Debug.Print "Nº de líneas en las declaraciones: " & .CountOfDeclarationLines
            '            Debug.Print "Nº de líneas en el módulo: " & .CountOfLines
            '            Debug.Print "Contenido de la línea nº 21: " & .Lines(21, 1)
            '            Debug.Print "Objeto principal: " & .Parent.Name
            '            Debug.Print "El cuerpo del procedimiento '" & .ProcOfLine(13, vbext_pk_Proc) & "' comienza en la línea " & .ProcBodyLine("lstProc_DblClick", vbext_pk_Proc)
            '            Debug.Print "El procedimiento '" & .ProcOfLine(13, vbext_pk_Proc) & "' contiene "; .ProcCountLines("lstProc_DblClick", vbext_pk_Proc) & " líneas"
            '            Debug.Print "El procedimiento que contiene la línea 6 es " & .ProcOfLine(6, vbext_pk_Proc)
            '            Debug.Print "El procedimiento lstProc_DblClick comienza en la línea " & .ProcStartLine("lstProc_DblClick", vbext_pk_Proc)
            '
                        lngStartLine = .CountOfDeclarationLines + 1
                      
                        Do Until lngStartLine >= .CountOfLines
            'Obtenemos el nombre del procedimiento con ProcOfLine a través del número de línea
                            frm.lstProc.AddItem String(8, "-") & " " & .ProcOfLine(lngStartLine, lngProcTyp) & _
                                                " (" & Choose(lngProcTyp + 1, "Procedimiento / Evento", "Let", "Set", "Get") & ")"
                            lngStartLine = lngStartLine + .ProcCountLines(.ProcOfLine(lngStartLine, lngProcTyp), lngProcTyp)
                        Loop
                    
                    End With
                    
                Next
                   
            End Sub
            
            Public Sub ListadoProcedimientosForm()
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Fuente            : https://access-global.net/vbide-series-procedimientos-listar-procedimientos/
            '                     Destello formativo 264
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Título            : ListadoProcedimientosForm
            ' Creado            : Luis Viadel
            ' Propósito         : mostrar un listado todos los procedimientos de nuestro programa en un UserForm de Acccess
            '-----------------------------------------------------------------------------------------------------------------------------------------------
            ' Test:             : Para adaptar este código en tu aplicación puedes basarte en este procedimiento test.  Copia el bloque siguiente al
            '                     portapapeles y pega en el editor de VBA en la carga de un formulario.
            '                     Descomenta la línea que te interese y pulsa F5 para ver su funcionamiento.
            '
            'Private UserForm_Initialize()
            '
            '    ListadoProcedimientosForm
            '
            'End Sub
            '
            '---------------------------------------------------------------------------------------------------------------------------------------------------
            Dim vbc As VBIDE.VBComponent
            Dim lngStartLine As Long
            Dim lngProcTyp As Long
            
                For Each vbc In Application.VBE.ActiveVBProject.VBComponents
                    
                    If vbc.Name <> "procUserForm" Then
                        procUserForm.lstProc.AddItem vbc.Name
                        
                        With vbc.CodeModule
                    
                          lngStartLine = .CountOfDeclarationLines + 1
                        
                          Do Until lngStartLine >= .CountOfLines
                              procUserForm.lstProc.AddItem String(8, "-") & " " & .ProcOfLine(lngStartLine, lngProcTyp) & _
                                                  " (" & Choose(lngProcTyp + 1, "Procedimiento / Evento", "Let", "Set", "Get") & ")"
                              lngStartLine = lngStartLine + .ProcCountLines(.ProcOfLine(lngStartLine, lngProcTyp), lngProcTyp)
                          Loop
                    
                        End With
                    
                    End If
                
                Next
                    
            End Sub
            
            ¡Ver en el repositorio!
            Compartir
            56
            Alba Salvá
            Alba Salvá

            Entradas relacionadas

            30/03/2023

            Tratamiento de errores: compilación condicional


            Leer más
            29/03/2023

            Tratamiento de errores: errores personalizados


            Leer más
            28/03/2023

            Tratamiento de errores: Resume


            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: compilación condicional
              30/03/2023
            • 0
              Tratamiento de errores: errores personalizados
              29/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