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


    [Resolvido]Comparação entre Datas utilizando o IF

    avatar
    Convidado
    Convidado


    [Resolvido]Comparação entre Datas utilizando o IF Empty Comparação entre Datas utilizando o IF

    Mensagem  Convidado 11/9/2012, 14:15

    Colegas... Por incrível que pareça estou tendo problemas no código a seguir...

    Tenho uma Data extraida da coluna de uma lista...

    Preciso efetuar duas comparações

    1 - Se a data da lista > Date e < Date + 90 dias
    2 - Se a dara da lista < Date

    Porem existindo na lista dois registros com (possibilidade 1 e 2) o código sempre remete a mesma condição na linha em vermelho..



    Sub MudaCor()
    Dim StrData, StrData_1 As Date
    Dim i As Integer ' row placeholder
    StrData_1 = DateAdd("d", 90, Date)

    For i = 1 To lvxObj.ListItems.Count
    ' Define which row
    Set lstItem = lvxObj.ListItems(i)
    'Carrega na variável o valor da segunda coluna

    StrData = lstItem.ListSubItems.Item(1)
    MsgBox StrData
    'Seta a cor basedo em um critério
    If StrData > Date Then And StrDate < StrData_1 Then
    lstItem.ListSubItems.Item(1).ForeColor = vbRed
    lstItem.ListSubItems.Item(1).Bold = True
    lstItem.ListSubItems.Item(1).ReportIcon = 6
    ElseIf StrDate < Date Then
    lstItem.ListSubItems.Item(1).ForeColor = vbRed
    lstItem.ListSubItems.Item(1).ReportIcon = 11
    lstItem.ListSubItems.Item(1).Bold = True
    Else
    lstItem.ListSubItems.Item(1).ForeColor = vbBlack
    End If
    Next i
    Me.lstCNH.Requery
    End Sub


    Se puderem ajudar fico grato.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  criquio 11/9/2012, 14:21

    Tenho cá pra mim que o primeiro Then está de intruso na linha em vermelho. Tambem tenho cá pra mim que se declarar strData como Date tambem pode ajudar:

    Dim StrData As Date, StrData_1 As Date


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  Convidado 11/9/2012, 14:53

    Perdoe-me havia uma aspa simples ai... eu estava testando....

    If StrData > Date Then 'And StrDate < StrData_1 Then

    Retirei a aspa quando postei a menssagem e esqueci de retirar o ptimeiro then

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  Convidado 11/9/2012, 15:33

    Estava correto amigo.. pensei que da forma como fiz as duas variáveis estavam como Data


    Só a título de informação, este código é utilizado para o Controle ActiveX ListView, e adiciona cores a um determinado registro em uma coluna da lista mediante critérios. Também adiciona ícones ao registro. Um controle que achei muito interessante e dá ao aplicativo uma aparencia muito profissional.


    Codigo corrigido e funcionando:

    Sub MudaCor()
    Dim StrData As Date
    Dim StrData_1 As Date

    Dim i As Integer ' row placeholder
    StrData_1 = DateAdd("d", 90, Date)
    Me.txtCount = lvxObj.ListItems.Count
    For i = 1 To lvxObj.ListItems.Count
    ' Define which row
    Set lstItem = lvxObj.ListItems(i)
    'Carrega na variável o valor da segunda coluna

    StrData = lstItem.ListSubItems.Item(1)
    'Seta a coor basedo em um critério
    If StrData > Date And StrDate < StrData_1 Then
    lstItem.ListSubItems.Item(1).ForeColor = vbBlue
    lstItem.ListSubItems.Item(1).Bold = True
    lstItem.ListSubItems.Item(1).ReportIcon = 2
    ElseIf StrDate < Date Then
    lstItem.ListSubItems.Item(1).ForeColor = vbRed
    lstItem.ListSubItems.Item(1).ReportIcon = 4
    lstItem.ListSubItems.Item(1).Bold = True
    Else
    lstItem.ListSubItems.Item(1).ForeColor = vbBlack
    End If
    Next i
    Me.lstCNH.Requery
    End Sub

    Obrigado.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  criquio 11/9/2012, 15:48

    Certo. Essa é uma característica do Access, é preciso declarar cada variável individualmente.

    Dim A, B, C As Integer ' apenas C está declarada como Integer. As outras ficaram como Variant
    Dim A As Integer, B As Integer, C As Integer ' Todas as três agora são Integer

    No Visual Basic já funciona de forma diferente. Lá, podemos fazer algo como:

    Dim A As Integer = 1
    Dim B As Integer = 0
    Dim C As Integer = 0


    Mas é assim mesmo. São tantas variáveis que às vezes acabam ficando variadas, hehehe.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  Convidado 11/9/2012, 15:52

    Ela sem ser declarada corretamente fica como Variant então, apenas a ultima no caso fora declarada.

    Obrigado amigão.


    O print do modelo:

    [Resolvido]Comparação entre Datas utilizando o IF ListView

    Conteúdo patrocinado


    [Resolvido]Comparação entre Datas utilizando o IF Empty Re: [Resolvido]Comparação entre Datas utilizando o IF

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 10:01