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]If não funcionando

    avatar
    Pietrobom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    [Resolvido]If não funcionando Empty [Resolvido]If não funcionando

    Mensagem  Pietrobom 7/5/2021, 17:49

    Pessoal preciso de uma ajuda.

    Tenho um formulário com 3 textbox que preenchem um textbox em outro formulário, e preciso que quando o textbox do outro formulário é preenchido ele mantenha o que já está lá, vá para a próxima linha e alimente com os dados novos, mas quando o cliente está recebendo informação pela primeira vez não quero que ele pule uma linha, fiz isso com o seguinte código:

    Código:
    Private Sub SubmitHist_Click()


        DoCmd.OpenForm "Cadastro de Clientes", acNormal, , , acFormEdit, acWindowNormal
        Forms![Cadastro de Clientes].Histórico.Locked = False

            If Forms![Cadastro de Clientes].Histórico = Null Or Forms![Cadastro de Clientes].Histórico = "" Then

                Forms![Cadastro de Clientes].Histórico = (Me.datahist & " - " & Me.Historico & " " & Me.Usuario)
                Forms![Cadastro de Clientes].Histórico.SetFocus
                Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico.Text)
                Forms![Cadastro de Clientes].Histórico.Locked = True

                DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
                DoCmd.Close

            Else

                Forms![Cadastro de Clientes].Histórico = (Forms![Cadastro de Clientes].Histórico.Value & vbNewLine & Me.datahist & " - " & Me.Historico & " " & Me.Usuario)
                Forms![Cadastro de Clientes].Histórico.SetFocus
                Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico.Text)
                Forms![Cadastro de Clientes].Histórico.Locked = True

                DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
                DoCmd.Close

            End If

    End Sub

    O problema é que quando é um cliente novo e o textbox Histórico está vazio ele continua pulando uma linha. O que estou fazendo errado?
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2739
    Registrado : 23/01/2018

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  crysostomo 7/5/2021, 18:52

    mas quando o cliente está recebendo informação pela primeira vez não quero que ele pule uma linha escreveu: escreveu:

    Boa tarde.
    Quando se tem If (depende da versão) para focar em um campo quando se tem isso , você tem que manda o comando para focar em 2 campos, ou seja, ele foca no debaixo e volta a focar no campo  quer você quer.

    Campo2.setFocus
    CampoQueVocêQuer.setFocus


    ele pula em um e volta para o principal.


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.
    avatar
    Pietrobom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Pietrobom 7/5/2021, 19:19

    Muito obrigado pela dica, mas o problema real não é este, é que ele não reconhece que não tem nada na textbox destino (o que deveria fazer ele não adicionar uma linha, então ele continua adicionando uma linha mesmo não devendo.

    Grato
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Noobezinho 9/5/2021, 20:52

    José

    Fiz umas modificações no teu código, veja se funfa legal agora.

    O que estou estranhando é que você repete o histórico em duas tabelas. o que não é preciso.

    Você pode chamar o histórico da tabela de clientes e colocar em qualquer formulário, desde que faça o relacionamento

    entre as tabelas.

    { }'s

    Balem



    DoCmd.OpenForm "Cadastro de Clientes", acNormal, , , acFormEdit, acWindowNormal
        'Não precisa da linha de baixo, pode bloquear o memo na folha de propriedades, ele bloqueia somente digitação.
        'Forms![Cadastro de Clientes].Histórico.Locked = False


           If Len(Forms![Cadastro de Clientes].Histórico & "") =  0 Then
               If Len(Me.Historico) > 2 Then 'se tem algo para adicionar então adiciona.
               Forms![Cadastro de Clientes].Histórico.Value = Me.datahist & " - " & Me.Historico & " " & Me.Usuario
               Forms![Cadastro de Clientes].Histórico.Locked = True
               Forms![Cadastro de Clientes].Histórico.SetFocus
               Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico) + 1
               DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
               DoCmd.Close

           Else
                 If Len(Me.Historico) > 2 Then
                    Forms![Cadastro de Clientes].Histórico = (Forms![Cadastro de Clientes].Historico.Value & vbNewLine & Me.datahist & " - " & Me.Historico & " " & Me.Usuario)
                    Forms![Cadastro de Clientes].Histórico.SetFocus
                    Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico) + 1
                    'Forms![Cadastro de Clientes].Histórico.Locked = True  'não precisa, bloqueie na folha de propriedades
                    DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
                    DoCmd.Close
             Endif
           End If
     End Sub


    .................................................................................
    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.
    avatar
    Pietrobom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Pietrobom 10/5/2021, 18:24

    Olá Noobezinho,

    Coloquei suas modificações, mas quando cliquei no botão - Literalmente - nada aconteceu.

    Muito Obrigado por responder a pergunta, Não entendi o que você quis dizer com : "O que estou estranhando é que você repete o histórico em duas tabelas. o que não é preciso."

    Eu tenho 1 Histórico (com acento) no formulário "Cadastro de Clientes" que é o histórico do cliente. Cada vez que ele vem e faz algo na clínica adicionamos um comentário sobre o que foi feito no dia. O que estou fazendo é que os comentários já feitos sejam impossível de ser alterados, então bloqueie esse textbox, criei outro formulário que chama AdicHist e nesse formulários criei 3 textbox 1 que contém a data do atendimento - "Datahist" outro o nome de quem fez o atendimento - Usuario e e um que contem o descritivo do atendimento - Historico (sem acento). quando esses três campos está preenchidos o usuário clica no botão "Submeter" e o comando deve fazer o seguinte -
    Liberar o textbox "Histórico" que está bloqueado para não ter alteração manual.
    pegar os campos "Datahist" "Historico" e "Usuário" e colocar no campo "Histórico" no Formulário "Cadastro de Clientes" no seguinte formato:
    "10/05/2021 - Paciente Compareceu. Pietrobom"
    Bloquear novamente a textbox "Histórico"
    Chamar o formulário "Adichist" e fecha-lo.

    Isso tudo consegui fazer.

    Mas pra não ficar um histórico corrido (como se estivesse tudo na msm linha) pedi para ele adicionar uma linha antes de adicionar o novo comentário.
    Porém quando é o primeiro de todos os comentários ele pula uma linha e fica um buraco no começo da textbox, e é por isso que eu quero colocar esse "IF" para que ele perceba se tem ou não algum comentário no "Histórico" e não tendo quero que ele não pule uma linha.

    Obrigado mais uma vez.
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Noobezinho 10/5/2021, 21:10

    José

    Como o teu problema é simples, envio o formulário de como fiz o histórico clínico de uma veterinária.
    Então, os clientes são os pets.
    O campo memo Histórico clínico está bloqueado para digitação  ou apagamentos de algo no histórico.

    Já o campo adicionar histórico, está livre para digitação e é incluído no histórico clínico através do botão ao lado.

    Veja se consegue resolver, baseado nele.

    Caso contrário, disponibilizar parte do teu projeto como tabelas , consultas e formulário envolvidos na operação,

    para analisarmos.

    Balem
    Anexos
    [Resolvido]If não funcionando AttachmentConsultorio.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (44 Kb) Baixado 14 vez(es)


    .................................................................................
    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.
    avatar
    Pietrobom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Pietrobom 12/5/2021, 19:38

    Olá Noobezinho,

    Desculpa a demora na resposta, consegui resolver da seguinte forma, a diferença do meu e do seu é que o meu quando vou adicionar um histórico chamo outro formulário, por isso tenho que ficar trocando de formulário:

    Código:
    Private Sub SubmitHist_Click()

    If Len(Me.datahist & "") = 0 Then
            msg = MsgBox("Inserir data", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")
            Me.datahist.SetFocus
        
        Else
            If Len(Me.Usuario & "") = 0 Then
                msg = MsgBox("Inserir usuario", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")
                Me.Usuario.SetFocus
                
            Else

                DoCmd.OpenForm "Cadastro de Clientes", acNormal, , , acFormEdit, acWindowNormal
                Forms![Cadastro de Clientes].Histórico.Locked = False
                  
                If Len(Forms![Cadastro de Clientes].Histórico & "") = 0 Then

                    Forms![Cadastro de Clientes].Histórico = (Me.datahist & " - " & Me.Historico & " -" & Me.Usuario)
                    Forms![Cadastro de Clientes].Histórico.SetFocus
                    Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico.Text)
                    Forms![Cadastro de Clientes].Histórico.Locked = True
                    
                    DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
                    DoCmd.Close
                    DoCmd.RunCommand acCmdSaveRecord
                    msg = MsgBox("Registro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")


                Else

                    Forms![Cadastro de Clientes].Histórico = (Forms![Cadastro de Clientes].Histórico.Value & vbNewLine & Me.datahist & " " & Me.Historico & " -" & Me.Usuario)
                    Forms![Cadastro de Clientes].Histórico.SetFocus
                    Forms![Cadastro de Clientes].Histórico.SelStart = Len(Forms![Cadastro de Clientes].Histórico.Text)
                    Forms![Cadastro de Clientes].Histórico.Locked = True
                    
                    
                    
                    DoCmd.OpenForm "AdicHist", acNormal, , , acFormEdit, acWindowNormal
                    DoCmd.Close
                    DoCmd.RunCommand acCmdSaveRecord
                    msg = MsgBox("Registro salvo com Sucesso!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVISO")

                End If
            End If
    End If

    Obrigado mais uma vez pela ajuda.


    Última edição por Pietrobom em 12/5/2021, 20:04, editado 1 vez(es) (Motivo da edição : Resolvido)

    crysostomo gosta desta mensagem

    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Noobezinho 12/5/2021, 19:50

    Ótimo José

    Só faltou o resolvido no título do tópico.

    Para isso, edite uma mensagem tua, e clique no botão resolvido logo

    abaixo do quadro de mensagens.

    Boa sorte!

    Balem


    .................................................................................
    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.
    avatar
    Pietrobom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 13/08/2017

    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Pietrobom 12/5/2021, 20:07

    Ok, procurei até achar.

    Não dá pra colocar resolvido editando uma msg, o botão só aparece quando está respondendo.

    Obrigado mais uma vez.

    Conteúdo patrocinado


    [Resolvido]If não funcionando Empty Re: [Resolvido]If não funcionando

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/10/2024, 02:18