MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


3 participantes

    [Resolvido]Atribuir um código a um controle via VBA

    leicand
    leicand
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 04/01/2016

    [Resolvido]Atribuir um código a um controle via VBA Empty [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  leicand 19/8/2016, 14:44

    Bom dia!

    Tenho um Form de busca de produtos que em uma opção de busca avançada abre um outro form para uma busca por atributos dos produtos (ex: Diâmetro, Altura, Dureza, Furos etc.).
    Só que cada tipo de produto tem atributos específicos, então o Form cria os controles (txtbox e combobox, dependendo de cada atributo, se for opção aberta ou fechada).

    O que preciso é quando criar esse controle, atribuir a ele um comando vba OnChange. Isso é possível?

    Não sei se ajuda, mas estou criando os comandos com o seguinte código dentro de um Loop:

    If !range = "S" Then
    Set Ctl = CreateControl(Strform, acTextBox, LeFt:=Left1, Top:=Top1, Width:=Width1, Height:=Height1)
    Ctl.Name = codAtrib
    Else
    Set Ctl = CreateControl(Strform, acComboBox, LeFt:=Left1, Top:=Top1, Width:=Width1, Height:=Height1)
    Ctl.RowSource = "select index_pa1035, vlr_atrib_pa1035 from ATRIBUTOS_PA1035 where comb_pa1035 = '" & !Comb & "'"
    Ctl.BoundColumn = 1
    Ctl.ColumnCount = 2
    Ctl.ColumnWidths = "0;1"
    Ctl.Name = codAtrib

    End If
    Left1 = Left1 - 2500
    Top1 = Top1 + 500
    If Top1 > 6000 Then
    Top1 = 500
    Left1 = 8900
    End If

    Agradeço muito a ajuda!
    cleverson_manaus
    cleverson_manaus
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1022
    Registrado : 23/09/2011

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  cleverson_manaus 19/8/2016, 14:57



    Bom dia Gabriel,


    Apenas minha sugestão e como comparação:

    Tenho formulários com situações que dependendo da minha escolha ativo ou desativo determinados campos, ou seja, os campos já estão todos previstos e criados, resta apenas decidir quando utilizá-los.


    Abraços,




    .................................................................................
    afro

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!
    leicand
    leicand
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 04/01/2016

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  leicand 19/8/2016, 15:06

    Bom dia Cleverson,

    Obrigado pela resposta. O formulário está dessa maneira, eu já escrevi os comandos VBA no form e no loop tenho o seguinte código: Forms(Strform).Controls(codAtrib).OnChange = "[Event Procedure]"
    Ele atribui o código que já está escrito no Form.

    O problema é que são centenas de atributos possíveis e cada um tem um valor padrão. Dessa maneira é muito difícil escrever todos e dar manutenção é impossível.
    O ideal realmente seria criar o código quando crio o controle... pretendo apagar o Form toda vez e criar novamente com os controles a cada busca.
    cleverson_manaus
    cleverson_manaus
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1022
    Registrado : 23/09/2011

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  cleverson_manaus 19/8/2016, 15:09




    Realmente, situação ímpar.


    Acho que postando parte do bd, fica mais fácil a ajuda pelos demais.






    .................................................................................
    afro

    "É fazendo que se aprende a fazer aquilo que se deve aprender a fazer."(Aristóteles)
    - Dúvida resolvida!!! Marcar o tópico como resolvido!!!
    leicand
    leicand
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 04/01/2016

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  leicand 19/8/2016, 15:21

    Obrigado.

    Segue parte do DB
    Anexos
    [Resolvido]Atribuir um código a um controle via VBA AttachmentBUSCA DE PRODUTOS.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (309 Kb) Baixado 8 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  Alexandre Neves 21/8/2016, 18:42

    Boa tarde
    Sub AddButtonAndShow()

    Dim Butn As CommandButton
    Dim Line As Long
    Dim objForm As Object

    Set objForm = ThisWorkbook.VBProject.VBComponents("UserForm1")

    Set Butn = objForm.Designer.Controls.Add("Forms.CommandButton.1")
    With Butn
    .Name = "CommandButton1"
    .Caption = "Click me to get the Hello Message"
    .Width = 100
    .Top = 10
    End With

    With objForm.CodeModule
    Line = .CountOfLines
    .InsertLines Line + 1, "Sub CommandButton1_Click()"
    .InsertLines Line + 2, "MsgBox ""Hello!"""
    .InsertLines Line + 3, "End Sub"
    End With

    VBA.UserForms.Add(objForm.Name).Show

    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    leicand
    leicand
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 04/01/2016

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  leicand 22/8/2016, 18:57

    Boa tarde Alexandre,

    Acho que isso vai resolver meu problema! Mas infelizmente ainda não consegui fazer o código funcionar.

    Quando rodo o código ele trava na seguinte parte:

    Set objForm = ThisWorkbook.VBProject.VBComponents("UserForm1")

    Ele não encontra o método ou membro de dados do ".VBProject"

    Será que estou fazendo algo errado?

    Muito obrigado pela ajuda!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  Alexandre Neves 28/8/2016, 10:11

    Bom dia
    O código apresentado é de Excel
    tente utilizar
    Set objForm = forms!NomeDoForm


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    leicand
    leicand
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 04/01/2016

    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  leicand 29/8/2016, 18:33

    Obrigado Alexandre!

    Agora sim!

    Vou colocar o tópico como resolvido!!

    Conteúdo patrocinado


    [Resolvido]Atribuir um código a um controle via VBA Empty Re: [Resolvido]Atribuir um código a um controle via VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:56