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


2 participantes

    [Resolvido]Comparar Datas ....atual, passada e futura.

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 24/4/2014, 22:37

    Prezados, boa noite a todos.

    Gostaria de contar com a ajuda de vocês. Preciso realizar três (3) comparações de datas.
    A data de hoje, a data do passado e a data do futuro.
    Para isso tenho o código que esta aqui.

    Private Sub LstPrNor_Click()
    ' esse evento preenche os campos de número de acordo e valor
    ' que estão no frmcadastro com base na cboTpPreco com base listbox.


    If Me.LstPrNor.Column(3) <> Forms!frmcadastro.Form!cbomot.Column(1) Then
    MsgBox ("Preço para o motivo: " & Forms!frmcadastro.Form!cbomot.Column(1) & vbCrLf & "Escolhido errado, reveja!"), vbCritical, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = ""
    Me.LstPrNor.SetFocus
    Else
    strDate = "SELECT nordtvig FROM tblatznormal WHERE nordtvig = date" ** onde está o problema** onde nordtvig é um campo data, tblatznormal é a tabela
    '
    If strDate > Me.LstPrNor.Column(5) Then
    MsgBox "Você escolheu uma data FUTURO, confirme se é esse mesmo que deseja !"
    Else
    If strDate < Me.LstPrNor.Column(5) Then

    MsgBox "Você escolheu uma data Passada, confirme se é esse mesmo que deseja !"

    Forms!frmcadastro.Form!NORMOTEXT = Me.LstPrNor.Column(3)
    Forms!frmcadastro.Form!PRVIG = Me.LstPrNor.Column(4)
    Forms!frmcadastro.Form!PRLQD = Me.LstPrNor.Column(4)
    DoCmd.Close
    End If
    End If
    End If
    End Sub

    No depurar do mesmo....erro 13, tipos incompatíveis.

    Alguém tem alguma ideia ?

    Abraços.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 24/4/2014, 22:56

    Silvio, como estais declarando o formato da variável? Pelo que eu vi no código do post e pelo prefixo dela estais declarando como texto, se possível disponibiliza os objetos.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 24/4/2014, 23:06

    Grande Beto,boa noite...espero que tudo esteja bem contigo e com o teus.

    eis a Declaração: Dim strDate As Date

    Na tblatznor, a data esta no formato: data normal ou seja.....14-abr-2014


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 24/4/2014, 23:12

    Dá uma olhada nesse tópico onde ajudei um colega que estava com dificuldades na filtragem de data e dá uma olhada no select, tenta colocar o teu no mesmo formato para ver se resulta em êxito, caso negativo posta os objetos.
    http://maximoaccess.forumeiros.com/t18410-resolvidodlookup-com-criterio-de-data
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 24/4/2014, 23:34

    Negativo meu amigo...negativo mesmo.
    Estou deixando uma parte do sistema.
    Eu preciso, comparar a nordtvig e hrvig que estão na TblAtzNor com a data e hora de hoje....e informar ao usuário o que ele esta escolhendo.
    Se ele escolheu uma data anterior a hoje...msg de aviso.
    Se ele escolheu uma data posterior a hoje...msg de aviso
    Se ele escolheu uma data igual a hoje....msg de aviso também
    Se ele esta de acordo com o que ele esta escolhendo, preenche certos campos de outro formulário.
    Esse é um, tem mais 4 para fazer !
    Mas acertando um....o resto é fácil, se puder me ajudar, fico agradecido Beto.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 24/4/2014, 23:49

    Silvio é necessário o frmcadastro, pois quando cloicamos na listbox ele procura por esse objeto
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Avelino Sampaio 25/4/2014, 10:12

    Olá homem Raio!

    a variável strDate está recebendo uma STRING e não uma DATA.  Por isso o erro TIPO 13.

    a variável strDate não RODA a consulta em questão, ela apenas recebe a string.  Se vc quiser "rodar" a consulta sql é preciso usar o DAO.

    dim rs as dao.recordset
    dim strDate as string
    strDate="SELECT nordtvig FROM tblatznormal WHERE nordtvig = date"
    set rs = currentdb.openRecordset(strDate)
    If rs!nordtvig > Me.LstPrNor.Column(5) Then
    ...



    Ou o mais simples que é utilizar a função DLookup()

    dim dtaDate as date
    dtaDate = Dlookup("nordtvig","tblatznormal","nordtvig = date")
    If dtaDate > Me.LstPrNor.Column(5) Then


    poderá enfrentar outro problema que é a comparação de formatos de datas diferentes.  Então seria melhor acertar os formatos

    dtaDate = Dlookup("nordtvig","tblatznormal","nordtvig = date")
    If format(dtaDate,"mm/dd/yyyy") > format(Me.LstPrNor.Column(5),"mm/dd/yyyy") Then


    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 25/4/2014, 12:32

    Bom dia a todos....

    Avelino e Beto agradeço a ajuda de vocês, mas deu um erro.

    Private Sub LstPrNor_Click()
    ' esse evento preenche os campos de número de acordo e valor que estão no frmcadastro com base na cboTpPreco com base listbox.
    ' abaixo realizo a verificação de datas anterior, posterior ou atual, para não pegar preço errado.
    If Me.LstPrNor.Column(3) = Forms!frmcadastro.Form!cbomot.Column(1) Then
    dtaDate = DLookup("nordtvig", "tblatznor", "nordtvig = date") --> local do erro.

    If Format(dtaDate, "dd/mm/yyyy") > Format(Me.LstPrNor.Column(5), "mm/dd/yyyy") Then
    MsgBox "Você escolheu uma data FUTURO, confirme se é esse mesmo que deseja !", vbInformation, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = Me.LstPrNor.Column(3)
    Forms!frmcadastro.Form!PRVIG = Me.LstPrNor.Column(4)
    Forms!frmcadastro.Form!PRLQD = Me.LstPrNor.Column(4)
    DoCmd.Close
    End If
    End If
    If Me.LstPrNor.Column(3) = Forms!frmcadastro.Form!cbomot.Column(1) Then
    dtaDate = DLookup("nordtvig", "tblatznor", "nordtvig = date")
    If Format(dtaDate, "mm/dd/yyyy") < Format(Me.LstPrNor.Column(5), "mm/dd/yyyy") Then
    MsgBox "Você escolheu uma data PASSADA, confirme se é esse mesmo que deseja !", vbInformation, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = Me.LstPrNor.Column(3)
    Forms!frmcadastro.Form!PRVIG = Me.LstPrNor.Column(4)
    Forms!frmcadastro.Form!PRLQD = Me.LstPrNor.Column(4)
    DoCmd.Close
    End If
    End If
    MsgBox ("Preço para o motivo: " & Forms!frmcadastro.Form!cbomot.Column(1) & vbCrLf & "Escolhido errado, reveja!"), vbCritical, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = ""
    Me.LstPrNor.SetFocus
    End Sub

    Erro de tempo de execução 2471 - A expressão que você inseriu como parâmetro da consulta gerou este erro: "date"


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3900
    Registrado : 04/04/2010

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Avelino Sampaio 25/4/2014, 12:52

    troque date por date() no dlookup

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 25/4/2014, 12:55

    Bom dia amigos, Silvio acho que não precisa ir ate a tabela, pois os dados dela já está na litbox, então basta:

    1ª Condição
    If Format(LstPrNor.Column(5), "mm/dd/yyyy") > Format(Date, "mm/dd/yyyy") Then


    ElseIf Format(LstPrNor.Column(5), "mm/dd/yyyy") < Format(Date, "mm/dd/yyyy") Then


    ElseIf Format(LstPrNor.Column(5), "mm/dd/yyyy") = Format(Date, "mm/dd/yyyy") Then

    End If
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 25/4/2014, 13:13

    Faz o teste.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 25/4/2014, 13:21

    Beto e Avelino....

    Ficou assim....

    Código:
    On Error Resume Next
    ' esse evento preenche os campos de número de acordo e valor que estão no frmcadastro com base na cboTpPreco com base listbox.
    ' abaixo realizo a verificação de datas anterior, posterior ou atual, para não pegar preço errado.

    If Me.LstPrNor.Column(3) = Forms!frmcadastro.Form!cbomot.Column(1) Then
    If Format(LstPrNor.Column(5), "mm/dd/yyyy") > Format(Date, "mm/dd/yyyy") Then
    MsgBox "Você escolheu um Preço FUTURO, confirme se é esse mesmo que deseja !", vbInformation, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = Me.LstPrNor.Column(3)
    Forms!frmcadastro.Form!PRVIG = Me.LstPrNor.Column(4)
    Forms!frmcadastro.Form!PRLQD = Me.LstPrNor.Column(4)
    DoCmd.Close
    End If
    End If


    If Me.LstPrNor.Column(3) = Forms!frmcadastro.Form!cbomot.Column(1) Then
    If Format(LstPrNor.Column(5), "mm/dd/yyyy") < Format(Date, "mm/dd/yyyy") Then
    MsgBox "Você escolheu um preço PASSADO, confirme se é esse mesmo que deseja !", vbInformation, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = Me.LstPrNor.Column(3)
    Forms!frmcadastro.Form!PRVIG = Me.LstPrNor.Column(4)
    Forms!frmcadastro.Form!PRLQD = Me.LstPrNor.Column(4)
    DoCmd.Close
    End If
    End If

    If Me.LstPrNor.Column(3) <> Forms!frmcadastro.Form!cbomot.Column(1) Then
    MsgBox ("Preço para o motivo:  " & Forms!frmcadastro.Form!cbomot.Column(1) & vbCrLf & "Escolhido errado, reveja!"), vbCritical, Me.Caption
    Forms!frmcadastro.Form!NORMOTEXT = ""
    Me.LstPrNor.SetFocus
    End If
    End Sub

    Funcionando perfeitamente..... Tive que entrar com o On error resume next, pois estava dando erro no ultimo if me.lstPrNor

    Agradeço aos dois pela ajuda e pela força que me deram.

    Ps. vou abrir um outro tópico a respeito de Duplicação de registros, tenho a tblcadastro e eu tenho que duplicar um registro, quando o end user escolher numa combobox uma palavra.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    Convidado
    Convidado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Convidado 26/4/2014, 00:35

    Silvio, só uma explicação ao exemplo que postei. Se Tiver uma data na tabela como 30/05/2014 e hr 20:00 e o formulário for aberto nesse dia em um horário abaixo das 20:00 a msg será de data "hoje", mas se o horário estiver acima das 20:00 vai dar data "passado". Por causa dessa linha que está em teu post: Eu preciso, comparar a nordtvig e hrvig que estão na TblAtzNor com a data e hora de hoje
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Silvio 26/4/2014, 13:01

    bom dia ......

    Tem razão Beto...tem toda a razão !


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."

    Conteúdo patrocinado


    [Resolvido]Comparar Datas ....atual, passada e futura. Empty Re: [Resolvido]Comparar Datas ....atual, passada e futura.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:25