MaximoAccess

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

Obrigado

Administração do MaximoAccess

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]Filtro entre datas(Data Geral)

    EvandoNunes
    EvandoNunes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 24/01/2012

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  EvandoNunes em Qua 28 Maio - 14:39

    Boa tarde galera!

    Tem alguns dias que já venho tentando fazer um filtro entre datas via VB apartir de uma consulta que contem um campo do tipo DataGeral(dd/mm/aaaa hh:mm:ss)

    Mas até então não consegui, revirei todos os exemplos, todas os topicos e nada!

    Tenho formulário que contem 2 campos do tipo data abreviada e um botão para executar o código que irá preencher o formulário com os dados que estão entre as datas informadas.

    Código:
        'Expressão para busca de datas
        If Not IsNull(Me.Data_Inicio) And Not IsNull(Me.Data_Fim) Then

            'Funciona + ou -
            strWhere = strWhere & "Data_Registro Between " & Me.Data_Inicio & " and " & Me.Data_Fim & " and"
            
        End If

    Como posso resolver isso?

    Desde já agradeço a atenção!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7781
    Registrado : 05/11/2009

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty Re: [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  Alexandre Neves em Qua 28 Maio - 14:55

    Boa tarde,
    Veja se a variável strWhere termina em espaço
    Veja a formatação das datas Format(Me.Data_Inicio,"dd-mm-yyyy") ou outras variantes
    Dê continuidade à(s) condição(ões) para dar completar a expressão strWhere


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    EvandoNunes
    EvandoNunes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 24/01/2012

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty Re: [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  EvandoNunes em Qua 28 Maio - 15:36

    Boa Tarde Alexandre!

    Já fiz boas tentativas aqui nesse sentido mas não tive exito! Já converti as data em string, já formatei as datas em dd/mm/aaaa e nada!

    Esse é meu codigo completo da StrWere:

    Código:
    Private Function BuildWhereString() As String
        Dim strWhere As String
        Dim varItemSel As Variant

        On Error Resume Next

        strWhere = ""

        'Expressão para Busca por Tipo de veículos
        Select Case Me.fraOTipo.Value
        Case 1  '  Próprio
            strWhere = strWhere & "Tipo = 1 And "
        Case 2  '  Terceiro
            strWhere = strWhere & "Tipo = 2 And "
        End Select

        'Expressão para busca de datas
        If Not IsNull(Me.Data_Inicio) And Not IsNull(Me.Data_Fim) Then
            'Funciona + ou -
            strWhere = strWhere & "Data_Registro Between " & Me.Data_Inicio & " and " & Me.Data_Fim & " and"
        End If

        'Expressão para Busca_Placa
        If Len(Me.Busca_Placa.Value & "") > 0 Then
            strWhere = strWhere & "Placa "
            strWhere = strWhere & Choose(Me.fraOName.Value, strNoStartWildCard, strStartWildCard, strEqual_1)
            strWhere = strWhere & Me.Busca_Placa.Value
            strWhere = strWhere & Choose(Me.fraOName.Value, strContainWildCard, strContainWildCard, strEqual_2)
            strWhere = strWhere & " And "
        End If
        
        'Expressão para Busca_Num
        If Len(Me.Busca_Num.Value & "") > 0 Then
            strWhere = strWhere & "ID_Checklist "
            strWhere = strWhere & Choose(Me.fraOName.Value, strNoStartWildCard, strStartWildCard, strEqual_1)
            strWhere = strWhere & Me.Busca_Num.Value
            strWhere = strWhere & Choose(Me.fraOName.Value, strContainWildCard, strContainWildCard, strEqual_2)
            strWhere = strWhere & " And "
        End If

        If Len(strWhere) > 0 Then strWhere = Left(strWhere, Len(strWhere) - Len(" And "))

        BuildWhereString = strWhere
        Exit Function
    End Function

    e esse é o codigo do botão pesquisar:

    Código:
    Private Sub bt_Pesquisar_Click()
        Dim strSQL As String

        On Error Resume Next

        DoCmd.Hourglass True

        ' move focus to clear button
        Me.Bt_Limpar.SetFocus
        ' Verifica se foi informado algum filtro
        If BuildWhereString <> "" Then
            strSQL = BuildWhereString
            strSQL = "SELECT * FROM " & strMainformRecordSource & _
                     IIf(strSQL = "", "", " WHERE ") & strSQL & ";"
        Else
            strSQL = "SELECT * FROM " & strMainformRecordSource & ";"
        End If

        Me.RecordSource = ""
        Me.RecordSource = strSQL

        Call SetVisibility(True)

        DoCmd.Hourglass False
    End Sub

    Os demais campos funcionam perfeitamente, mas quando usa os campos datas ai não vai de jeito nenhum!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7781
    Registrado : 05/11/2009

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty Re: [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  Alexandre Neves em Qua 28 Maio - 15:43

    Deverá ser
    strWhere = strWhere & "Data_Registro Between " & Me.Data_Inicio & " and " & Me.Data_Fim & " and "


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    EvandoNunes
    EvandoNunes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 45
    Registrado : 24/01/2012

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty Re: [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  EvandoNunes em Qua 28 Maio - 16:21

    Caro Alexandre!

    Já tem + de mês que tento resolver questão e não havia conseguido! E quando a gente menos espera nos vem a solução!

    veja como resolvi!

    Código:
    'Expressão para busca de datas
        If Not IsNull(Me.Data_Inicio) And Not IsNull(Me.Data_Fim) Then
            strWhere = strWhere & "Data_Registro >= #" & Format(Me!Data_Inicio, "mm/dd/yyyy") & "#" _
                    & " And Data_Registro <= #" & Format(Me!Data_Fim + 1, "mm/dd/yyyy") & "#"
            strWhere = strWhere & " And "
        End If

    Eu estava preso between, e quando resolvi mudar a linha de raciocínio a coisa da certo!
    toyebom
    toyebom
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1118
    Registrado : 18/07/2012

    entre data - [Resolvido]Filtro entre datas(Data Geral) Empty [Resolvido]Filtro entre datas(Data Geral)

    Mensagem  toyebom em Dom 14 Set - 23:13

    ainda bem que conseguiste eu ainda não consegui mas o teu código de data ajuda muito


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

      Data/hora atual: Seg 30 Nov - 19:51