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

    [Resolvido]Trocar o nome do formulário na linha de comando.

    Compartilhe

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Seg 23 Fev 2015, 07:29

    Bom dia Senhoras e Senhores,

    Preciso de ajuda para algo que eu acredito que seja simples para quem tem domínio (não é o meu caso).
    O exemplo que segue tem duas telas (tosco, pois criei somente para solicitar ajuda), a principal com o nome 'Frm_Número_de_Série', nesta tem um botão que chama a segunda tela com o nome 'Frm_Número'.
    Na segunda tela tem um controle com o nome 'Modelo' que recebe o nome da primeira tela, na primeira tela o evento que chama a segunda, coloquei o comando que carrega o nome do Form para a segunda tela (Forms!Frm_Número!Modelo.Value = Me.Name).
    Na segunda tela, após inserir uma informação qualquer e clicar em 'Inserir' carrega a informação para a primeira tela e fecha com o comando:
    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Número_de_Série.Value
    DoCmd.Close acForm, "Frm_Número"

    Enfim, o que eu gostaria de saber se tem jeito, é de fazer referência ao controle 'Modelo' da segunda tela e trocar pelo que está em negrito.
    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Número_de_Série.Value

    Se o que eu coloquei não tiver jeito de fazer, mas tiver algo dentro do contexto, peço que me deem o caminho das pedras.

    Grato pela atenção e apoio.
    Anexos
    Inserindo_Dados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (10 Kb) Baixado 0 vez(es)


    Última edição por clynton em Qua 25 Fev 2015, 06:47, editado 2 vez(es)


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 920
    Registrado : 05/02/2010

    Trocar o nome do formulário na linha de comando

    Mensagem  good guy em Seg 23 Fev 2015, 17:54

    Olá Clynton,

    Será que isso o que vc quer:

    Código:

    Private Sub Button_Click()
    DoCmd.OpenForm "Frm_Número", acNormal
    Forms!Frm_Número!Modelo.Value = Forms!Frm_Número_de_Série!Número_de_Série
    Dim strNome As String
    strNome = Me.Name
    Forms!Frm_Número!Número_de_Série.Value = strNome
    End Sub

    Private Sub Fechar_Button_Click()
    DoCmd.Close acForm, "Frm_Número_de_Série"
    End Sub

    Código:

    Private Sub Inserir_Button_Click()
    On Error Resume Next
    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Modelo.Value
    DoCmd.Close acForm, "Frm_Número"
    End Sub

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Seg 23 Fev 2015, 20:17

    Olá Eduardo, grato pelo retorno.

    Na verdade, não sei se é possível fazer o que eu quero, seria algo invertido.
    No Form 'Frm_Número', no botão Inserir_Button, colocar o código.
    Na linha que segue gostaria de trocar o que está em destaque fazendo referência ao campo 'Modelo' do mesmo Form, pois, o valor deste campo será sempre exatamente o valor que deve entrar nesta parte da linha, até tentei trocar por uma String, mas como faço referência a um Form, não aceita, apresenta erro.

    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Número_de_Série.Value
    DoCmd.Close acForm, "Frm_Número"


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 920
    Registrado : 05/02/2010

    Trocar o nome do formulário na linha de comando

    Mensagem  good guy em Ter 24 Fev 2015, 13:48

    Olá clynton,

    O que vc quer está além da minha compreensão. Como vc quer substituir o nome do formulário (cuja sintaxe de referência pede um form porque é precedido de "Forms") pelo nome de um campo? Não faz sentido !!!

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Ter 24 Fev 2015, 14:38

    Olá Eduardo, levantei a questão sem saber da possibilidade ou impossibilidade de se fazer isso, acreditando que seria possível de alguma forma.
    Se houvesse alguma forma de se fazer, não em trocar o nome do Form pelo nome do campo e sim pelo valor deste campo, me ajudaria e muito, pois o sistema que desenvolvi está com mais de 320.000 linhas de comando e isso seria muito reduzido, pois, tenho telas secundárias para alimentar telas principais, então uma vez que eu consigo captar o nome do Form principal num campo, faço por exemplo da seguinte forma:

    If Me.Modelo.Value = "Frm_Número_de_Série" Then
    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Número_de_Série.Value
    ElseIf Me.Modelo.Value = "Frm_Cadastro" Then
    Forms!Frm_Cadastro!Número_de_Série.Value = Me.Número_de_Série.Value
    End If

    A questão é que usei de exemplo dois Forms que seriam principais, no entanto, o Sistema que desenvolvi tem 10 telas principais (Cadastro).
    Se houvesse um jeito de captar o valor do campo 'Modelo' como eu perguntei, trocaria no caso do exemplo 5 linhas de comando por apenas uma.

    Vou deixar em aberto para ver se alguém dá uma luz de alguma outra forma que seja possível obter esse resultado, senão, marcarei o tópico como [Resolvido].

    Grato pela sua atenção.


    Última edição por clynton em Qua 25 Fev 2015, 05:22, editado 1 vez(es)


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  Noobezinho em Ter 24 Fev 2015, 15:13

    Clynton

    Difícil de entender, porque nos forms que anexou , não disse o que serão os dados de cada caixa de texto, com
    exceção da caixa de texto Modelo.
    Mas entendo que já consegue preencher  a caixa de texto modelo com o nome do formulário.

    Estou entendendo que deseja realmente subistituir:

    Forms!Frm_Número_de_Série!Número_de_Série.Value = Me.Número_de_Série.Value

    por qualquer nome de formulário que aparecer na textbox Modelo.

    Então, talvez seja isso:

    Coloquei um valor qualquer na textbox  Número_de_Série

    Private Sub Inserir_Button_Click()
    Dim mcode As Variant
    Select Case Me.Modelo

           Case "Frm_Número_de_Série"
           mcode = "Forms!" & Me.Modelo & "!Número_de_Série = " & Me.Número_de_Série
           Debug.Print mcode

    End Select

    End Sub

    [ ] '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 .

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Ter 24 Fev 2015, 16:05

    Noobezinho, não está tão difícil assim de entender, ou melhor, de entender pode até estar, mas você compreendeu exatamente o contexto do que eu quero, só que a instrução que me passou não funcionou.
    Abre o 'Frm_Número_de_Série', clica no botão 'Buscar Número', assim abrirá o 'Frm_Número'...
    ...no 'Frm_Número' insira qualquer informação no campo e ao clicar em inserir ele joga tal informação para o 'Frm_Número_de_Série' e fecha.
    Não apresentou erro, simplesmente não aconteceu nada.

    Grato.


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 920
    Registrado : 05/02/2010

    Trocar o nome do formulário na linha de comando

    Mensagem  good guy em Ter 24 Fev 2015, 16:18

    Olá clynton,

    Até aí também entendi só que não vi lógica na sintaxe com Forms que exige o nome de um formulário na sequência e não o nome de um campo a não ser quando for precedido de Me (Me.NomedoCampo).


    Modifiquei o código do Noobezinho e funfou assim:

    Formulário FrmNúmero:
    Código:

    Private Sub Inserir_Button_Click()
    On Error Resume Next
    Dim mCode As Variant
    Select Case Me.Modelo

          Case Forms!Frm_Número_de_Série!Número_de_Série
          mCode = Me.Modelo
          Me.Número_de_Série.Value = mCode

    End Select

    End Sub

    Formulário Frm_Número_de_Série:

    Código:

    Private Sub Button_Click()
    On Error Resume Next
    DoCmd.OpenForm "Frm_Número", acNormal
    Forms!Frm_Número!Modelo.Value = Forms!Frm_Número_de_Série!Número_de_Série

    End Sub


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  Noobezinho em Ter 24 Fev 2015, 17:52

    Não seria mais fácil assim?


    Select Case Me.Modelo

    Case "Frm_Número_de_Série"
    Forms!Frm_Número_de_Série!Número_de_Série = Me.Número_de_Série
    Case "Frm_Cadastro"
    Forms!Frm_Cadastro!Número_de_Série = Me.Número_de_Série


    End Select


    Porque de todo modo, terá que escrever um case para cada formulário, então já define o comando para preencher o controle
    do formulário em questão.

    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 .

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Ter 24 Fev 2015, 21:41

    Senhores, agradeço muito pelo apoio de vocês.
    Estou mandando outro exemplo para ver se me faço ser melhor entendido, mesmo se não tiver jeito de fazer algo dentro do contexto do que eu gostaria
    Reparem que o Botão 'Inserir' do 'Frm_Estados' tem 56 linhas de comando e a metade se repete, mudando apenas o nome do Form, por isso perguntei se teria algo para me possibilitar usar o valor do campo 'Modelo' para não se fazer necessário repetir o código mudando apenas o nome do Form.
    Se isso por acaso for possível, esse Botão por exemplo, teria a metade de linhas de código em sua instrução.
    O exemplo é tosco e simples, no caso do Sistema que desenvolvi, trabalho com uma média de 60 campos e para 10 telas, ou seja, se eu estivesse usando tal Sistema para exemplificar, estaríamos falando de 610 linhas que poderiam ser simplificadas para pouco mais de 60.


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    clynton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 307
    Registrado : 08/07/2013

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  clynton em Qua 25 Fev 2015, 06:46

    Agradeço imensamente ao Good Guy e ao Noobezinho, por terem disponibilizado tempo e atenção para me auxiliar nesta questão.
    Confesso que pensei em desistir, mas, o desafio me motiva e pelo menos até então, tenho percebido nas ferramentas que desenvolvo que por mais absurda que pareça uma ideia, sempre tem um jeito de resolver.
    Para este tópico, o que parecia impossível, ficou resolvido da seguinte forma (depois de muito bater cabeça e perceber que não era um bicho de sete cabeças):

    No evento 'Ao clicar' no botão 'Inserir' do 'Frm_Número', entrou o seguinte código:

    Código:
    Forms("" & Me.Modelo.Value & "").Controls("Número_de_Série") = Me.Número_de_Série.Value
    DoCmd.Close acForm, "Frm_Número"

    Desta forma encerro o tópico como [Resolvido].


    .................................................................................
    Cumprimentos...


    Atenciosamente,
    Rogério Clynton Ribeiro


    __________________________________________________________________________

    "Ninguém é tão grande que não possa aprender e nem tão pequeno que não possa ensinar."

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Trocar o nome do formulário na linha de comando.

    Mensagem  Noobezinho em Qua 25 Fev 2015, 10:20

    Que ótimo que conseguiu !! bounce

    Quando descobrimos a coisa por nós mesmo, lavamos a alma, né?

    Valeu pelo retorno

    Boa sorte !

    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 .

    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 920
    Registrado : 05/02/2010

    Trocar o nome do formulário na linha de comando

    Mensagem  good guy em Qua 25 Fev 2015, 13:26

    Parabéns Clynton,

    Fico feliz que tenha conseguido o que almejava. O que é conquistado por esforço próprio tem muito mais sabor. Não é, mesmo? Obrigado por nos fazer parte desta conquista com nosso incentivo e empenho. Sucesso !!!

    good guy

      Data/hora atual: Qui 08 Dez 2016, 00:06