MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Compartilhe

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 18:11

    Olá pela segunda vez hoje hehehe Wink

    Pessoal eu tenho outra duvida

    Eu queria fazer o seguinte, quando escolho a viatura, nos km iniciais aparece o valor do km registado, mas eu gostava de poder impedir o campo "KM Final" de digitar um valor menor que o valor de campo "KM Inicial"

    Exemplo:
    Viatura 117
    Km Inicial: 100
    Quando for digitar o "KM Final" se tentar digitar 99, ele não vai deixar, tem de dar um erro

    Ps: caso digite 100 ele não pode dar erro, ou seja tem de ser  menor apenas que o KM Inicial

    Tabela: Registos
    Formulário: Registo

    Prints de exemplos
    [Você precisa estar registrado e conectado para ver esta imagem.]
    ........................
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 05/12/2016

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  caiosouza em Qua 08 Nov 2017, 18:29

    Boa tarde,

    No evento Após atualizar do campo KM_FINAL

    Código:
    If Me.KM_FINAL < Me.KM_INICIAL Then
    MsgBox "KM não pode ser menor que o Inicial", VbInformation
    Me.KM_FINAL = Null
    Me.KM.INICIAL.SetFocus
    Me.KM.FINAL.SetFocus
    End if


    Aguardamos retorno!


    .................................................................................
    A persistência leva ao sucesso!
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 18:37

    Boa tarde!

    Ou pode-se colocar desta forma tambem.

    Código:
    If (Me.KM_FINAL - Me.KM_INICIA) < 0 Then
    MsgBox "KM não pode ser menor que o Inicial", VbInformation
    Me.KM_FINAL = Null
    Me.KM.INICIAL.SetFocus
    Me.KM.FINAL.SetFocus
    End if

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 18:39

    Obrigado pela resposta

    Ele funciona 50% assim mas mesmo assim tem um erro e que deixa continuar a escrever no proximo campo quando clicamos no "end" do erro

    Com este código exactamente assim:

    Private Sub KM_Final_AfterUpdate()
    If Me.KM_Final < Me.KM_Inicial Then
    MsgBox "KM não pode ser menor que o Inicial", vbInformation
    Me.KM_Final = Null
    Me.KM_Inicial.SetFocus
    Me.KM_Final.SetFocus
    End If
    End Sub


    Imagem do erro:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    O Visual basic aponta para esta linha
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 18:43

    Teste assim

    Me.KM_Final = ""
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 18:45

    diogoisaias21, E se seu campo estiver com obrigação de preenchimento, elimine as partes abaixo.

    Me.KM_Inicial.SetFocus
    Me.KM_Final.SetFocus

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 18:50

    Obrigado pelo retorno

    Continua dando o erro acima, mesmo com as duas alterações que me pediu para fazer, e sim ele está em campo obrigatório

    Sendo que o erro continua nessa mesma linha indicada no print da minha resposta

    Obrigado
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 18:54

    Poste o BD para melhor poder lhe ajudar.

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 18:59

    Não estou autorizado a postar a bd, devido aos registos que tem

    Ela Está a ser construída para a associação Cruz Vermelha Portuguesa - Delegação de Alenquer, mas como eu já a tinha construído e eles estavam a testar, pediram-me umas alterações agora para melhorar o funcionamento da mesma


    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 19:19

    diogoisaias21

    Fiz um teste aqui em um modelo que criei, e pelo seu campo ser obrigatório gera este erro, pois quando o código "Me.KmFinal = Nulo" e executado ele pula de campo, e como nao aceita nulo da o erro.

    Segue o meu modelo, com a obrigação no campo retirada.

    analise se consegue retirar a obrigação do seu sistema, ou então iremos tentar alterar este código.  Very Happy
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (28 Kb) Baixado 2 vez(es)

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 19:24

    Irei Disponibilizar Todo o código desse mesmo formulário


    Quer dar uma vista de olhos a ver se algo está interagindo com o código?

    Código:
    "
    Option Compare Database
    Option Explicit

    Private Sub cmdNew_Click()
       
        If IsNull(Me.Data) Or Me.Data.Value = "" Then
    MsgBox "O campo ""Data"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Data.SetFocus

    ElseIf IsNull(Me.Requesitante_do_Serviço) Or Me.Requesitante_do_Serviço.Value = "" Then
    MsgBox "O campo ""Requesitante do Serviço"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Requesitante_do_Serviço.SetFocus


    ElseIf IsNull(Me.Serviço_Prestado) Or Me.Serviço_Prestado.Value = "" Then
    MsgBox "O campo ""Serviço Prestado"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Serviço_Prestado.SetFocus

    ElseIf IsNull(Me.Da_Localidade) Or Me.Da_Localidade.Value = "" Then
    MsgBox "O campo ""Da Localidade"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Da_Localidade.SetFocus



    ElseIf IsNull(Me.Para_a_Localidade) Or Me.Para_a_Localidade.Value = "" Then
    MsgBox "O campo ""Para a Localidade"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Para_a_Localidade.SetFocus

    ElseIf IsNull(Me.Destino) Or Me.Destino.Value = "" Then
    MsgBox "O campo ""Destino"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Destino.SetFocus


    ElseIf IsNull(Me.Hora_de_Saida) Or Me.Hora_de_Saida.Value = "" Then
    MsgBox "O campo ""Hora de Saida"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Hora_de_Saida.SetFocus

    ElseIf IsNull(Me.Hora_de_Chegada) Or Me.Hora_de_Chegada.Value = "" Then
    MsgBox "O campo ""Hora de Chegada"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Hora_de_Chegada.SetFocus



    ElseIf IsNull(Me.Viatura) Or Me.Viatura.Value = "" Then
    MsgBox "O campo ""Viatura"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Viatura.SetFocus

    ElseIf IsNull(Me.KM_Inicial) Or Me.KM_Inicial.Value = "" Then
    MsgBox "O campo ""KM Inicial"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.KM_Inicial.SetFocus

    ElseIf IsNull(Me.KM_Final) Or Me.KM_Final.Value = "" Then
    MsgBox "O campo ""KM Final"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.KM_Final.SetFocus

    ElseIf IsNull(Me.Nº_do_Condutor) Or Me.Nº_do_Condutor.Value = "" Then
    MsgBox "O campo ""Nº do Condutor"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Nº_do_Condutor.SetFocus


    ElseIf IsNull(Me.Assinatura) Or Me.Assinatura.Value = "" Then
    MsgBox "O campo ""Assinatura"" é de preenchimento obrigatório.", vbOKOnly + vbCritical, "Atenção"
    Me.Assinatura.SetFocus
    End If
    On Error Resume Next
        DoCmd.GoToRecord , , acNewRec
    End Sub


    Private Sub cmdDeleteRecord_Click()
    On Error GoTo Err_cmdDeleteRecord_Click


        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdDeleteRecord

    Exit_cmdDeleteRecord_Click:
        Exit Sub

    Err_cmdDeleteRecord_Click:
        MsgBox Err.Description
        Resume Exit_cmdDeleteRecord_Click
       
    End Sub
    Private Sub cmdRefresh_Click()
    On Error GoTo Err_cmdRefresh_Click


        DoCmd.RunCommand acCmdRefresh

    Exit_cmdRefresh_Click:
        Exit Sub

    Err_cmdRefresh_Click:
        MsgBox Err.Description
        Resume Exit_cmdRefresh_Click
       
    End Sub

    Private Sub KM_Final_AfterUpdate()
    If Me.KM_Final < Me.KM_Inicial Then
    MsgBox "KM Final não pode ser menor que o KM Inicial", vbInformation
    Me.KM_Inicial = ""
    End If
    End Sub

    Private Sub Viatura_AfterUpdate()
    [KM Inicial] = DMax("[KM Final]", "Registos", "[Viatura]='" & [Viatura] & "'")
    End Sub
    "
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qua 08 Nov 2017, 19:30

    Pois e, já tem um código que verifica se o campo KmFinal esta vazio, basta retirar na propriedade da tabela a obrigatoriedade do campo.
    avatar
    thiagomcosta
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 231
    Registrado : 23/01/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  thiagomcosta em Qua 08 Nov 2017, 19:36

    Tente trocar a linha que joga o valor nulo para jogar o valor do km inicial:

    Código:
    Me.KM_Final = Me.KM_Inicial

    Mude somente esta linha. Ao invés de NULL ou "", colo o km inicial.

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qua 08 Nov 2017, 19:57

    Obriga pelos retornos, eu infelizmente tive de sair do meu local de estágio, mas já pedi para me enviarem a base de dados para trabalhar em casa

    Irei retornar assim que tentar essas 2 linhas de código que me enviaram

    Obrigado a todos que estão a ajudar Wink
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 229
    Registrado : 05/12/2016

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  caiosouza em Qua 08 Nov 2017, 20:05

    diogoisaias21, o mais viável seria nos informar a descrição, juntamento com o número do erro que está dando.

    De qualquer forma, tente novamente com o código abaixo:
    Código:

    Private Sub KM_Final_AfterUpdate()
    If Me.KM_Final < Me.KM_Inicial Or Me.KM_Inicial = "" Or IsNull(Me!KM_Inicial) Then
    MsgBox "KM não pode ser menor que o Inicial", vbInformation
    Me.KM_Final = ""
    Me.*.SetFocus 'No lugar do * coloque algum controle que não seja bloqueado e que não seja requerido (Obrigação de preenchimento).
    Me.KM_Final.SetFocus
    End If
    End Sub


    .................................................................................
    A persistência leva ao sucesso!

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qui 09 Nov 2017, 10:00

    eu tentei retirar a obrigatoriedade do campo mas sem sucesso

    Vou tentar os outras soluções aguardem o feedback

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qui 09 Nov 2017, 10:31

    caiosouza o seu código funcionou na perfeição

    Muito obrigado a todos os que me tentaram ajudar

    cheers cheers cheers

    Eu tenho uma outra duvida que tem a ver com este assunto, que é por um limite maximo de diferença de km

    Por exemplo no KM Inicial ta em 100, eu queria por um limite de 1000 km a mais no Final

    Por exemplo:
    Km Inicial: 100
    Km Final: 1101 ( Erro porque passou do limite estabelecido de 1000KM )

    Eu preciso de criar noivo tópico, ou podem ajudar-me neste mesmo?

    Obrigado a todos pela vosso tempo, tem sido fantásticos comigo
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qui 09 Nov 2017, 10:57

    Bom dia Galera.

    diogoisaias21, adaptei o codigo para identifica o limite.
    veja se lhe atente.

    Código:
    Private Sub KmFinal_AfterUpdate()
    If Me.KmFinal < Me.KmInicial Or Me.KmInicial = "" Or IsNull(Me!KmInicial) Then
    MsgBox "KM não pode ser menor que o Inicial", vbInformation
    Me.KmFinal = ""
    Me.KmInicial.SetFocus 'No lugar do * coloque algum controle que não seja bloqueado e que não seja requerido (Obrigação de preenchimento).
    Me.KmFinal.SetFocus
    Else
    If (Me.KmFinal - Me.KmInicial) > 1000 Then
    MsgBox "Limite de Km ultrapassado, favor rever o lançamento.", vbCritical, "Aviso"
    Me.KmFinal = ""
    Me.KmInicial.SetFocus 'No lugar do * coloque algum controle que não seja bloqueado e que não seja requerido (Obrigação de preenchimento).
    Me.KmFinal.SetFocus
    End If
    End If
    End Sub
    Anexos
    Database1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (38 Kb) Baixado 2 vez(es)

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qui 09 Nov 2017, 11:16

    Funcionou perfeitamente amigo Wink

    Tinha uns erros porque os campos estavam mal escritos no código mas foram fáceis de identificar

    Muito Obrigado mais uma vez a todos

    cheers cheers cheers
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 27/03/2015

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill em Qui 09 Nov 2017, 12:05

    O fórum agradece cheers

    se precisar estamos aqui Very Happy

    diogoisaias21
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 45
    Registrado : 01/09/2017

    Re: [Resolvido]Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 em Qui 09 Nov 2017, 16:16

    acho que vou precisar sim,

    Eles como gostaram tanto da base de dados, pediram-me mais 2 bases de dados, e acho que vou precisar de uma ajudinha nestas 2 novas que terei de construir

    Shocked Shocked Shocked

      Data/hora atual: Ter 21 Nov 2017, 19:08