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]Trocar o nome do formulário na linha de comando.

    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 23/2/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
    [Resolvido]Trocar o nome do formulário na linha de comando. AttachmentInserindo_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 25/2/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
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  good guy 23/2/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
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 23/2/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
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  good guy 24/2/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
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 24/2/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 25/2/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 24/2/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


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 24/2/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
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  good guy 24/2/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 24/2/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



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    clynton
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 24/2/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
    clynton
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  clynton 25/2/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
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Noobezinho 25/2/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


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  good guy 25/2/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

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 07:03