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


4 participantes

    Impedir um valor que seja menor que outro valor de um campo

    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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
    Impedir um valor que seja menor que outro valor de um campo Teste10
    ........................
    Impedir um valor que seja menor que outro valor de um campo Teste_10
    caiosouza
    caiosouza
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  caiosouza 8/11/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!


    .................................................................................
    Caio Souza

    Engenheiro de Software
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/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
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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:
    Impedir um valor que seja menor que outro valor de um campo Sem_ty10

    O Visual basic aponta para esta linha
    Impedir um valor que seja menor que outro valor de um campo Sem_ty11
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/2017, 18:43

    Teste assim

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


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/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
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/2017, 18:54

    Poste o BD para melhor poder lhe ajudar.
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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


    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/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
    Impedir um valor que seja menor que outro valor de um campo AttachmentDatabase1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (28 Kb) Baixado 5 vez(es)
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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
    "
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 8/11/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.
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  thiagomcosta 8/11/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.
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 8/11/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
    caiosouza
    caiosouza
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  caiosouza 8/11/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


    .................................................................................
    Caio Souza

    Engenheiro de Software
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 9/11/2017, 10:00

    eu tentei retirar a obrigatoriedade do campo mas sem sucesso

    Vou tentar os outras soluções aguardem o feedback
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 9/11/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
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 9/11/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
    Impedir um valor que seja menor que outro valor de um campo AttachmentDatabase1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (38 Kb) Baixado 5 vez(es)
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 9/11/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
    bigfill
    bigfill
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  bigfill 9/11/2017, 12:05

    O fórum agradece cheers

    se precisar estamos aqui Very Happy
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 9/11/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
    avatar
    diogoisaias21
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  diogoisaias21 21/12/2017, 12:29

    Oi de novo pessoal

    Eu tive um pequeno problema

    Eu tive de tirar a origem do formulário e dos campos também, ou seja ficou sem origem nenhuma

    Depois disso o KM final inferior ao inicial nunca mais funcionou, mas o estranho é que o se passar 1000km continua a funcionar

    o código encontra-se assim;

    Código:
    'Esta Parte Não Funciona
    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, "Aviso"
    Me.KMFinal = ""
    Me.NCODU.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
    'Esta Parte Funciona sem problema
    If (Me.KMFinal - Me.KMInicial) > 1000 Then
    MsgBox "Limite de Km ultrapassado Por favor confirme os KM´s e reescreva os KM´s corretos.", vbInformation, "Aviso"
    Me.KMFinal = ""
    Me.NCODU.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

    Eu como disse apenas tirei a origem, devido a uns problemas, e mudei alguns nomes, mas já atualizei todos os nomes dos campos no vba

    Conteúdo patrocinado


    Impedir um valor que seja menor que outro valor de um campo Empty Re: Impedir um valor que seja menor que outro valor de um campo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 10:01