¿Qué falla del código?

Private Sub Form_Open(Cancel As Integer)
 'Declaramos las variables
 Dim vFechaFroz As Date
 Dim vFechLost As Date
 Dim miSqlF1 As String
 Dim miSqlF2 As String
 Dim miSqlF3 As String
 Dim miSqlL1 As String
 Dim miSqlL2 As String
 vFechFroz = Date - 90 '60 = 30 días por 2 meses
 vFechLost = Date - 120 '120 = 30 días por 4 meses
 'Crear las SQL de actualización filtrando
 miSqlF1 = "UPDATE Ofertas SET Ofertas.EstadoOferta=" & """" & "Frozen" & """" _
 & " WHERE Ofertas.FechaOferta<#" & Format(vFechFroz, "mm/dd/yy") & "#" _
 & " AND Ofertas.EstadoOferta=" & """" & "Offered" & """" _
 miSqlF2 = "UPDATE Ofertas SET Ofertas.SuccesRate=" & """" & "0%" & """" _
 & " WHERE Ofertas.FechaOferta<#" & Format(vFechFroz, "mm/dd/yy") & "#" _
 & " AND Ofertas.EstadoOferta=" & """" & "Frozen" & """" _
 miSqlF3 = "UPDATE Ofertas SET Ofertas.FechaAnulacion=" & """" & Format(FechaOferta + 90, "dd/mm/yy") & """" _
 & " WHERE Ofertas.FechaOferta<#" & Format(vFechFroz, "mm/dd/yy") & "#" _
 & " AND Ofertas.EstadoOferta=" & """" & "Frozen" & """" _
 miSqlL1 = "UPDATE Ofertas SET Ofertas.FechaAnulacion=" & """" & Format(FechaOferta + 120, "dd/mm/yy") & """" _
 & " WHERE Ofertas.FechaOferta<#" & Format(vFechLost, "mm/dd/yy") & "#" _
 & " AND Ofertas.EstadoOferta=" & """" & "Frozen" & """" _
 miSqlL2 = "UPDATE Ofertas SET Ofertas.EstadoOferta=" & """" & "Lost" & """" _
 & " WHERE Ofertas.FechaOferta<#" & Format(vFechLost, "mm/dd/yy") & "#" _
 & " AND Ofertas.EstadoOferta=" & """" & "Frozen" & """" _
 'Desactivamos los warnings
 DoCmd.SetWarnings False
 'Ejecutamos las SQL
 DoCmd.RunSQL (miSqlF1)
 DoCmd.RunSQL (miSqlF2)
 DoCmd.RunSQL (miSqlF3)
 DoCmd.RunSQL (miSqlL1)
 DoCmd.RunSQL (miSqlL2)
 'Activamos los warnings
 DoCmd.SetWarnings True
 'Avisamos de que todo ha ido bien
 'MsgBox "Actualización realizada correctamente", vbInformation, "OK" 'Esta línea es opcional: la puedes poner o no
End Sub

Bueno pues la idea de esto es que cada vez que habrá el formulario "Ofertas":

Si EstadoOferta=Offered Y (han pasado 90 días desde la fecha de Oferta) --> EstadoOferta= Frozen + SuccessRate=0% + FechaAnulacion= FechaOferta+90

Si (han pasado 120 desde la oferta)--> EstadoOferta=Lost + SuccessRate=0%+FechaAnulacion=FechaOferta+120

Todo me va BIEN cuando es el primer registro... Pero después de mas de un registro me falla la FechaAnulacion (no sé porque guarda la FechaOferta del primer registro que cumple el criterio...y a partir de ahí a todas las siguientes que lo cumplen le hace FechaAnulacion_delPrimerRegistro+90 o +120 según el caso).

Ejemplo:

EstadoOferta=Offered con FechaOferta=02/01/13-->todo bien y FechaAnulacion=02/05/13

(siguiente registro)

EstadoOferta=Offered con FechaOferta=12/12/13-->todo bien PERO FechaAnulacion=02/05/13 (Debería de ser 11/04/13 -->12/12/13 + 120). Guarda la Fecha de Oferta del primer registro en vez de esta nueva.

Quisiera ayuda del porque puede estar haciendo esto tan raro, ya que para las demás (Mirar EstadoOferta o si la FechaOferta a pasado 90 o 120 días) va bien y solo es en la FechaAnulacion... Me estoy volviendo loco!

Gracias de antemano!!

Añade tu respuesta

Haz clic para o