USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Consulta ao banco de dados??
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 01/05/2006 17:12 hs            
Olá.
Estou tentando obter a soma do campo <Preço>, após filtrar um período de tempo no banco de dados, através de uma instrução SQL. Contudo, só consegui a somatória do campo <Preço> de todos os registros, e não do período filtrado, como preciso.
Alguém pode me indicar onde está o erro?
Eis a rotina:
 
 

Private Sub SaídaAprovadas_Click()

On Error Resume Next

Dim DataSaída As Date

Dim sql As String, Aprovado As String

Dim Anterior As Date, DataDeSaída As Date

Dim Posterior As Date, Anterior1 As String, Posterior1 As String

Dim Fim as Double, Resultado as Double, rsTemp as RecordSet

                Anterior = InputBox("Entre com a data inicial.")

                If Len(Anterior) = 0 Then Exit Sub

                While Not IsDate(Anterior)

                                MsgBox "Você digitou " & Anterior & " !..." _

& Chr(13) & "Tente novamente...", vbQuestion, "Data no formato dd/mm/aaaa"

                                Anterior = InputBox("Entre com a data inicial.")

                                If Len(Anterior) = 0 Then Exit Sub

                Wend

                                Posterior = InputBox("Você digitou " & Anterior & " como data inicial." _

                                & Chr(13) & "Entre com a data final.")

                                If Len(Posterior) = 0 Then Exit Sub

                                While Not IsDate(Posterior)

                                               MsgBox "Você digitou " & Posterior & " !..." _

                       & Chr(13) & "Tente novamente...", vbQuestion, "Data no formato dd/mm/aaaa"

                                               Posterior = InputBox("Você digitou " & Anterior & " como" _

                                               & Chr(13) & "data inicial. Entre com a data final.")

                                               If Len(Posterior) = 0 Then Exit Sub

                                Wend

   

‘Aqui obtenho os registros que estão no intervalo de duas datas, e que foram aprovadas:

 

                sql = "SELECT * FROM  loja WHERE Aprovado='Sim'"

                 sql = sql & "AND DataDeSaída BETWEEN #" & Anterior & _

                 " #AND#" & Posterior & "#" & "ORDER BY Nome"       

                 Data1.RecordSource = sql

                        Data1.Refresh

                 Data1.Recordset.MoveMin

 

        ‘Aqui tentei somar as fichas filtradas no intervalo acima, mas não obtive resultado.

        ‘A msgbox retorna todos os registros cadastrados e somados, e não os registros filtrados.

               

        Set rsTemp = DB.OpenRecordset("SELECT Sum(Preço) as Fim from loja")

        Resultado = rsTemp!Fim

        MsgBox "Total encontrado: " & Format(Resultado, "R$ " & "###,###.00")

        rsTemp.Close       

End Sub

     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
Postada em 02/05/2006 08:18 hs         
Set rsTemp = DB.OpenRecordset("SELECT Sum(Preço) as Fim from loja WHERE Aprovado='Sim'"

                 sql = sql & "AND DataDeSaída BETWEEN #" & Anterior & _

                 " #AND#" & Posterior & "#" )

if rsTemp.recordcount > 0

        Resultado = rsTemp!Fim

        MsgBox "Total encontrado: " & Format(Resultado, "###,##0.00")

end if

if rsTemp no is nothing then

  rsTemp.close

set rsTemp = nothing

endif

     
ChicoVieira
CRUZEIRO
SP - BRASIL
Postada em 02/05/2006 13:46 hs            
Valeu, Martini. Quebrou um galhão... Muito obrigado.
Chico.
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página