Olá, a um tempo atrás eu havia aberto um tópico com ajuda em um problema, eu tenho um banco para gerenciamento do transporte, onde para um veículo sair eu devo informar qual é o veículo, o destino, a km de chegada de saída e o motorista, e para poder automatizar um pouco eu tenho uma função que atribui automaticamente a quilometragem de saída do veículo a quilometragem de chegada da última vez que ele saiu, o grande mestre J.PAULO me enviou um código excelente que faz isso, mas agora a km começou a não estar consistente, e percebi que o motivo é porque ele só compara o dia da saída, e desconsidera mês e ano, eu tentei resolver esse problema adicionando uma comparação dos meses e ano, mas não surtiu efeito, agradeceria muito se alguém pudesse me dar uma luz de como resolver esse problema, segue o código original e o editado.
Original
Editado
Original
- Código:
Function Pequisa_KM_UltimaData(sVeiculo As String)
Dim db As Database
Dim UltimData() As String
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * " & _
"FROM Eventos " & _
"WHERE [Veículo/Placa] ='" & sVeiculo & "';")
If rs.EOF = False Then
rs.MoveLast
rs.MoveFirst
ReDim Preserve UltimData(rs.RecordCount) As String
For i = 0 To rs.RecordCount - 1
If UltimData(j) <= rs.Fields("Data Chegada")Then
UltimData(j) = rs.Fields("Data Chegada")
Pequisa_KM_UltimaData = rs.Fields("Km Chegada")
End If
rs.MoveNext
Next i
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Function
Editado
- Código:
Function Pequisa_KM_UltimaData(sVeiculo As String)
Dim db As Database
Dim UltimData() As String
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * " & _
"FROM Eventos " & _
"WHERE [Veículo/Placa] ='" & sVeiculo & "';")
If rs.EOF = False Then
rs.MoveLast
rs.MoveFirst
ReDim Preserve UltimData(rs.RecordCount) As String
For i = 0 To rs.RecordCount - 1
If UltimData(j) <= rs.Fields("Data Chegada") And Month(UltimData(j)) < Month(rs.Fields("Data Chegada")) And Year(UltimData(j)) < Year(rs.Fields("Data Chegada")) Then
UltimData(j) = rs.Fields("Data Chegada")
Pequisa_KM_UltimaData = rs.Fields("Km Chegada")
End If
rs.MoveNext
Next i
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Function