MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access

    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access Empty [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access

    Mensagem  MS Kid em 28/9/2016, 15:32

    bom dia, pessoal.

    eu sei que posso inserir código VBA em eventos do form usando as propriedades do tipo, OnOpen, por exemplo. o que eu quero saber é como selecionar esses códigos já inseridos no módulo do form (ou geral) e manipulá-los, inserindo mais código ou mesmo deletando-o. estou fazendo uns testes com as coleções VBComponents, VBProjects, etc... mas, sem sucesso.

    alguém aí já fez isso? quem souber de algo, por favor, me ajude.

    obrigado!


    Última edição por MS Kid em 28/9/2016, 15:35, editado 1 vez(es) (Razão : título errado)
    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access Empty Re: [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access

    Mensagem  MS Kid em 2/10/2016, 22:35

    eu consegui o que queria fazendo alguns testes e pesquisas na internet e queria compartilhar minha experiência aqui no fórum:

    Código:
    Public Sub ListarCodigoProcedimento()
        Dim componente As Object
        Dim nome As String
        Dim kind As Long
        Dim indice As Long
        Dim linha As Long
        
        Dim inicio As Long
        Dim comprimento As Long
        
        For Each componente In Application.VBE.ActiveVBProject.VBComponents
            With componente.CodeModule
                indice = .CountOfDeclarationLines + 1
                
                Do While indice < .CountOfLines
                    nome = .ProcOfLine(indice, kind)
                    
                    If (componente.Name = "Form_frmTeste") And (nome = "btnTeste1_Click") Then
                        inicio = .ProcStartLine(nome, kind)
                        comprimento = inicio + .ProcCountLines(nome, kind)
                        
                        For linha = inicio To comprimento
                            Debug.Print .Lines(linha, 1)
                        Next linha
                    End If
                    
                    indice = .ProcStartLine(nome, kind) + .ProcCountLines(nome, kind) + 1
                Loop
            End With
        Next componente
    End Sub

    Código:
    Public Sub ListarCodigo()
        Dim componente As Object
        Dim indice As Long
        
        For Each componente In Application.VBE.ActiveVBProject.VBComponents
            With componente.CodeModule
                For indice = .CountOfDeclarationLines + 1 To .CountOfLines
                    Debug.Print .Lines(indice, 1)
                Next indice
            End With
        Next componente
    End Sub

    Código:
    Public Sub ListarProcedimento()
        Dim componente As Object
        Dim nome As String
        Dim kind As Long
        Dim indice As Long
        
        For Each componente In Application.VBE.ActiveVBProject.VBComponents
            With componente.CodeModule
                indice = .CountOfDeclarationLines + 1
                
                Do While indice < .CountOfLines
                    nome = .ProcOfLine(indice, kind)
                    
                    If (componente.Name = "Form_frmTeste") And (nome = "btnTeste1_Click") Then
                        Debug.Print componente.Name & "." & nome
                    End If
                    
                    indice = .ProcStartLine(nome, kind) + .ProcCountLines(nome, kind) + 1
                Loop
            End With
        Next componente
    End Sub

    sds,


    Última edição por MS Kid em 2/10/2016, 22:37, editado 1 vez(es) (Razão : correção de código)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2453
    Registrado : 22/11/2016

    [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access Empty Re: [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access

    Mensagem  DamascenoJr. em 21/3/2020, 17:46

    Tópico movido da sala de "Tabelas" para a sala de "Módulos e VBA".

    MS Kid, parabéns pela solução encontrada e obrigado por compartilhar. Só faltou o resolvido do tópico. Aguardamos sua finalização.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    MS Kid
    MS Kid
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 22/01/2013

    [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access Empty Re: [Resolvido]Como Deletar Procedimentos/Funções de Módulos em VBA do Access

    Mensagem  MS Kid em 27/3/2020, 19:57

    obrigado pessoal!

      Data/hora atual: 1/12/2020, 17:21