MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Criação de objeto commandbutton em tempo de execução

    Compartilhe

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Seg 11 Maio 2015, 18:26

    Caros, amigos... como vao??

    preciso de uma ajuda de vocês no seguinte código:
    Código:
    Option Explicit
    Private WithEvents btnObj As CommandButton

    Private Sub Form_Load()
       Set btnObj = Controls.Add("VB.CommandButton", "btnObj")
      Form1.Caption = "Criando controles"
       With btnObj
          .Visible = True
          .Width = 2000
          .Caption = "Olá Pessoal !!!"
          .Top = 500
          .Left = 1200
       End With
    End Sub
    porem, na adaptação que estou fazendo, na linha Set btnObj = Controls.Add("VB.CommandButton", "btnObj") ele fala que "método ou membro de dados não encontrado" e marca a palavra ADD

    estou usando o Access 2007

    achei essa rotina de criação de objetos muito simples e gostaria de saber o porque desse erro.
    desde já muito obrigado pela ajuda

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  Noobezinho em Ter 12 Maio 2015, 00:35

    Olá Bruno

    O código que apresentou é do Visual Basic um exemplo do site do Macoratti.

    Embora o VB do Visual Basic seja parecido com o VBA, não são identicos.

    Na coleção Controls () do Access não tem o método Add, por isso o erro e o Access "Grita!".

    No access, para criar qualquer controle num formulário, o mesmo deve estar em modo designe.

    Então, deveremos criar um botão num outro formulário e através dele usar o código VBA.

    Aqui está o código a ser usado nesse botão, do formulário1:

    Lembrando: os valores abaixo são em twips

    Código:

    DoCmd.OpenForm "Formulário2", acDesign, , , , acHidden ' abre o form 2, em modo designe, oculto

      
        With CreateControl( _
                 FormName:="Formulário2", _
                 ControlType:=acCommandButton, _
                 Section:=acDetail, _
                 Left:=4534, _
                 Top:=680, _
                 Height:=741, _
                 Width:=1529)

                 ' set control properties
                 .Name = "cmdOla"
                 .Caption = "Olá pessal"
        End With
      
        DoCmd.OpenForm "Formulário2"

    [ ]'s

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Ter 12 Maio 2015, 11:47

    Noobezinho, bom dia!!

    desculpe minha falta de destreza em não perceber que o código era VB (hahaha)... muito tempo (muito tempo mesmo) sem mexer na área da programação...
    sim, o código é do site do Macoratti..

    então pelo que entendi o VBA não cria objetos em tempo de execução.
    cara, muito obrigado pela ajuda... vou adaptar o seu código às minhas necessidades aqui e te dou um retorno assim que testar tudo...

    mais uma vez obrigado.

    Bruno.

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Ter 12 Maio 2015, 13:32

    e ae Noob, como vai?... olha eu aqui dnovo!! hehehe

    cara, fiz um teste porem o access continua "gritando"...

    saka so
    Código:
    Private Sub Form_Load()
    sbpMontaBotoes
    End Sub
    Código:
    Private Sub sbpMontaBotoes()
    'ROTINA PARA CAPTAÇÃO DE DADOS E CRIAÇÃO EM
    'TEMPO DE EXECUÇÃO DOS BOTOES UTILIZADOS NO
    'FORMULARIO
    DoCmd.OpenForm "001-BOMBEADOS", acDesign, , , , acHidden ' abre o form 2, em modo designe, oculto
      
        With CreateControl( _
                 FormName:="001-BOMBEADOS", _
                 ControlType:=acCommandButton, _
                 Section:=acDetail, _
                 Left:=10608, _
                 Top:=1005, _
                 Height:=801, _
                 Width:=2199)

                 ' set control properties
                 .Name = "btnV01"
                 .Caption = "Olá pessal"
        End With
      
        DoCmd.OpenForm "001-BOMBEADOS", acNormal
        
    End Sub

    dae ele apresenta o erro em anexo!!!
    pesquisei mas nada que solucionasse o problema.
    Anexos
    Captura de tela 2015-05-12 09.27.46.png
    Você não tem permissão para fazer download dos arquivos anexados.
    (13 Kb) Baixado 3 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  Noobezinho em Ter 12 Maio 2015, 13:37

    Qual o nome do formulário que está esse código?



    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Ter 12 Maio 2015, 14:04

    001-BOMBEADOS

    vo te explicar o q estou tentando fazer, as vezes vc tem outra solução para o meu problema...

    lembro que no VB tenhamos a opção de criar objetos (botões por exemplo) com índices, como c fosse um array, ( bt(1), bt(2) e por ae vai)
    no VBA não achei essa opção nem achei uma forma de fazer algo parecido a não ser criar os botões em tempo de execução...

    o q preciso e o seguinte, vou ter um bloco com 6 botões porem, so sera mostrado os botões que tiverem dados associados... caso não tenha ficarão invisíveis.

    então... após a consulta na tabela... (se houver dados)
    botao01.caption = dado1
    botao02.caption = dado2
    .
    .
    .
    botao6.caption = dado6

    sakou ?!

    []'s

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  Noobezinho em Ter 12 Maio 2015, 15:35

    Você não leu direito meu post  sobre formulários

    Você não consegue criar um objeto , no caso , um botão, em um formulário que está aberto para visualização.
    Só se pode criar em modo designe ou de estrutura, como era chamado antigamente.

    Veja no meu post que existem dois formulários, 1 e 2.

    Executa-se o código no form 1 pra criar no form 2

    Mas como vc mesmo diz, se são somente 6 botões, crie-os e deixe invisivel.

    No evento ao carregar ou abrir do formulário, experimente assim:

    If Dcount( "*","NomeConsulta") > 0 then ' se o número de registro é maior que zero, então...
     me.nomebotão.visible = true
    Endif


    Repita o código pra cada botão.

    Não conheço o teu formulário, mas é essa a ideia.


    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Ter 12 Maio 2015, 18:00

    Dae noob, entendi... realmente não percebi o outro formulário.... mas dessa forma não consigo fazer o que preciso pois tenho que mostrar os botões conforme o código vai executando...
    de qualquer forma... muito obrigado pela atenção e ajuda cara...
    vou ver outro jeito de fazer utilizado a sua outra ideia...
    grande abraco. cheers


    Última edição por brdias em Ter 12 Maio 2015, 18:03, editado 1 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2517
    Registrado : 29/06/2012

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  Noobezinho em Ter 12 Maio 2015, 18:02

    Mas você nem chegou a testar a segunda opção
    mencionada no meu post anterior


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    brdias
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 17/01/2013

    Re: Criação de objeto commandbutton em tempo de execução

    Mensagem  brdias em Ter 12 Maio 2015, 18:03

    esse eh o meu próximo passo hehehehe

      Data/hora atual: Sab 10 Dez 2016, 12:37