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