Jump to content
dezinh20

Realizando busca entre datas

Recommended Posts

dezinh20

boa tarde

estou realizar uma busca entre as datas DataInicial = 1/1/2011 e DataFinal = 31/1/2011 e estou fazendo este codigo

  Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And Data BETWEEN '" & DataInicial & "' AND '" & DataFinal & "' ORDER BY Data ")
   

mas está aparecendo datas que não são deste valor tipo 1/03/2011, como faço?

Obrigado

André

Share this post


Link to post
Share on other sites
jpaulino

Já não uso à algum tempo, mas tenta usar desta forma:

  Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And Data BETWEEN #" & DataInicial & "# AND #" & DataFinal & "# ORDER BY Data ")

ou

  Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And (Data > = '" & DataInicial & "' AND Data <= '" & DataFinal & "') ORDER BY Data ")

 

 

Share this post


Link to post
Share on other sites
dezinh20

então a primeira opção

Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And Data BETWEEN #" & DataInicial & "# AND #" & DataFinal & "# ORDER BY Data ")

consegui colocar e da certo, MAS o estranho é que ela so mostra 1 mes somente, tipo se vc pedir para mostrar do dia 20 ao 26 /01 ele mostra

mas se vc pedir para ele mostrar do dia 20/01 ao 26/02 ele so mostra do mes de janeiro :S

na segunda opção

Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And (Data > = '" & DataInicial & "' AND Data <= '" & DataFinal & "') ORDER BY Data ")

ele da erro de sintax

Share this post


Link to post
Share on other sites
jpaulino

Então e:

Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And (Data >=#" & DataInicial & "# AND Data <= #" & DataFinal & "#) ORDER BY Data ")

Share this post


Link to post
Share on other sites
dezinh20

deve ter algum erro no codigo so pode

Dim rs As DAO.Recordset
Dim DataFinal As Date
Dim DataInicial As Date


If cmbescolha = "Data" Then
   Set rs = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE data ='" & DTPicker1 & "'")
ElseIf cmbescolha = "Periodo" Then
    DataInicial = DTPicker1
    DataFinal = DTPicker2
    Set rs = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE Data BETWEEN # " & DataInicial & " # AND # " & DataFinal & " # ORDER BY matricula,Data ")
        If rs.EOF = True Then
            MsgBox ("não foi encontrado nenhum regristo entre estas datas")
            Exit Sub
        End If
ElseIf cmbescolha.Text = "Mes" Then
    Dia = DTPicker1.Day
    Mes = DTPicker1.Month
    ano = DTPicker1.Year
    DataInicial = "01/" & Mes & "/" & ano
            If ((DTPicker1.Month = "1") Or (DTPicker1.Month = "3") Or (DTPicker1.Month = "5") Or (DTPicker1.Month = "7") Or (DTPicker1.Month = "8") Or                 (DTPicker1.Month = "10") Or (DTPicker1.Month = "12")) Then
    DataFinal = "31/" & Mes & "/" & ano
ElseIf DTPicker1.Month = "2" Then
     If ((DateAdd("yyyy", 1, Date - DatePart("y", DataHoje)) - (Date - DatePart("y", Date))) = 366) Then
         DataFinal = "/29/" & DTPicker1
     Else
        DataFinal = "28/" & Mes & "/" & ano
     End If
  Else
    DataFinal = "30/" & DTPicker1
  End If
        
        
        
      Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE Data >=#" & DataInicial & "# AND Data <= #" & DataFinal & "# ORDER BY Data ")
                                                                     
        If rs.EOF = True Then
        MsgBox ("Não foi encontrador nenhum regristo neste mes")
             Exit Sub
           
        End If
End If

With MS
  .Redraw = flexRDBuffered ' << new setting
  .OutlineBar = flexOutlineBarCompleteLeaf
  .Ellipsis = flexEllipsisEnd
  ' behavior
  .AllowSelection = False
  .Highlight = flexHighlightWithFocus
  .ScrollTrack = True
  .AutoSearch = flexSearchFromCursor

  .Rows = 0
  Matricula = 0
  matricula1 = 0
  'Carrega Recursos
   Do While Not rs.EOF
        Do While rs!Matricula = Matricula
            rs.MoveNext
            If rs.EOF Then
                Exit Sub
            End If
            
      Loop

      
      .Rows = .Rows + 1
      .Row = .Rows - 1
      .IsSubtotal(.Rows - 1) = True
      .RowOutlineLevel(.Rows - 1) = 1
      .Col = 0
      .Text = rs!codigo
      .CellAlignment = flexAlignRightCenter
      .Col = 1
      .Text = rs!Matricula & " -- " & rs!pFuncionario
      Matricula = rs!Matricula
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      .Col = 2
      .Text = "Data de Dias Trabalhados"
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      .Col = 3
      .Text = "Entrada"
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      .Col = 4
      .Text = "Saida"
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      .Col = 5
      .Text = "Horario Total Por Dia Trabalhado"
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      If cmbescolha = "Data" Then
         Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And  data ='" & DTPicker1 & "'")
      Else
      Set rs2 = Db2.OpenRecordset("SELECT * FROM funPONTO WHERE matricula ='" & Matricula & "' And (Data >=#" & DataInicial & "# AND Data <= #" & DataFinal & "#) ORDER BY  Data ")
                                    
      End If
         
         Do While Not rs2.EOF
            If rs2!Matricula <> Matricula Then
                rs2.MoveNext
            Else
         
             SubTotal = 0
             .Rows = .Rows + 1
             .Row = .Rows - 1
             .IsSubtotal(.Rows - 1) = True
             .RowOutlineLevel(.Rows - 1) = 2
             .Col = 2
             .Text = rs2!Data
             .CellAlignment = flexAlignRightCenter
             .Col = 3
             .Text = rs2!hora_entrada
             .CellAlignment = flexAlignRightCenter
             .Col = 4
             .Text = IIf(IsNull(rs2!hora_saida), "Horario em Aberto", rs2!hora_saida)
             .CellAlignment = flexAlignRightCenter
             .Col = 5
             If IsNull(rs2!hora_saida) Then
                .Text = DateDiff("h", rs2!hora_entrada, "18:00:00") & "hrs (Cálculo Previsão)"
                .CellAlignment = flexAlignRightCenter
             Else
                horas = Format(rs2!hora_saida, "hh")
                minutos = Format(rs2!hora_saida, "nn")
                horas1 = Format(rs2!hora_entrada, "hh")
                minutos1 = Format(rs2!hora_entrada, "nn")
            If minutos = 0 Then
                minutos = 60
            ElseIf minutos1 = 0 Then
                minutos1 = 60
            End If
            If minutos > minutos1 Then
                MinutosF = minutos - minutos1
            Else
                MinutosF = minutos1 - minutos
            End If
            Do While horaF = horas
                horaF = MinutosF + horaF
            Loop
                .Text = horasF & ":" & MinutosF & "horas (Fechado)"
                .CellAlignment = flexAlignRightCenter
                 '.Text = DateDiff("h", rs2!hora_entrada, rs2!hora_saida) & "horas (Fechado)"
            End If
            somam = MinutosF + somam
            omah = horasF + somah
            rs2.MoveNext
           End If
        Loop
   
      Do While somam >= 60
'        If somam > 60 Then
         somam = somam - 60
         somah = somah + 1
'        End If
     Loop
      horatotal = somah & ":" & somam
     If horatotal <> "00:00" Then
      .Rows = .Rows + 1
      .Row = .Rows - 1
      .IsSubtotal(.Rows - 1) = True
      .RowOutlineLevel(.Rows - 1) = 2
      .Col = 2
      .Text = "Horas totais de Trabalho"
      .CellFontBold = True
      .Col = 4
      .Text = horatotal
      .CellAlignment = flexAlignRightCenter
      .CellFontBold = True
      .Rows = .Rows + 1
      .Row = .Rows - 1
      .RowHeight(.Row) = 100
      .IsSubtotal(.Rows - 1) = True
      .RowOutlineLevel(.Rows - 1) = 1
    End If
      rs.MoveNext
      somam = 0
      somah = 0
      horatotal = 0

Loop

End With
End Sub

porque é impossível dar continuar com este erro!

Share this post


Link to post
Share on other sites
dezinh20

Poxa desculpa pela demora...

mas consegui resolver....O que eu fiz

No meu banco tinha uma tela de buscar....

nela criei o seguinte codigo

 CodConta = cmbCBancarias.ItemData(cmbCBancarias.ListIndex)
    dtInicial.Day = 1
    dtFinal.Day = 31
     Datas = "# " & dtContas.Month & "/" & dtInicial.Day & "/" & dtContas.Year & " # AND # " & dtContas.Month & "/" & dtFinal.Day & "/" & dtContas.Year & " #"
    frmCPagar.CarregaTabBusca 1, "BAIXO", "optConta", Trim(Str(CodConta)), Datas

aonde

Codcontas = pega a conta bancaria

datas = cria a data desejada, ( lembrando que a data tem que ser mm/dd/aaa)

e envia para a outra tela ja com as informações prontas e só procura no banco e carrega que seria o meu (frmCPAGAR)

que faz a seguinte consulta

   Set rs = Db2.OpenRecordset("SELECT * FROM VWCPagar WHERE cbaCod = " & aux & " AND valVencimento BETWEEN " & sitcap & " ORDER BY valVencimento ")

e deu certo...  =)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.