¿El código no hace lo que debería?
Private Sub Form_Open(Cancel As Integer) 'Declaramos las variables Dim vFechaFroz As Date Dim vFechLost As Date Dim miSqlF As String Dim miSqlL 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 miSqlF = "UPDATE Ofertas SET Ofertas.EstadoOferta=" & """" & "Frozen" & """, Ofertas.SuccesRate=" & """" & "0%" & """, Ofertas.FechaAnulacion=" & """" & Format(FechaOferta + 90, "dd/mm/yy") & """ " _ & " WHERE Ofertas.FechaOferta<#" & Format(vFechFroz, "mm/dd/yy") & "#" _ & " AND Ofertas.EstadoOferta=" & """" & "Offered" & """" _ miSqlL = "UPDATE Ofertas SET Ofertas.EstadoOferta=" & """" & "Lost" & """, Ofertas.SuccesRate=" & """" & "0%" & """, Ofertas.FechaAnulacion=" & """" & Format(FechaOferta + 120, "dd/mm/yy") & """ " _ & " WHERE Ofertas.FechaOferta<#" & Format(vFechLost, "mm/dd/yy") & "#" _ & " AND Ofertas.EstadoOferta=" & """" & "Frozen" & """" _ 'Desactivamos los warnings DoCmd.SetWarnings False 'Ejecutamos las SQL DoCmd.RunSQL (miSqlF) DoCmd.RunSQL (miSqlL) '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 noEnd Sub
Buenas expertos!Este código lo he hecho para que cada vez que abriera el formulario "Ofertas" me revise ciertos parámetros de la tabla "Ofertas" y me modifique algunos si es necesario.
La lógica es la siguiente:
Si EstadoOferta="Offered" y han pasado 90 días desde que se hizo la oferta ( FechaOferta<FechaActual()-90 ), entonces cambia el EstadoOferta="Frozen", SuccessRate="0%" y añade al campo FechaAnulacion=FechaOferta+90.
Si han pasado 120 días desde la FechaOferta entonces: EstadoOferta="Lost".
No sé el porqué, pero todo me va ok en la primer registro.. Pero a partir del segundo me falla la FechaAnulación (me guarda el valor de la FechaOferta del primer registro y me suma 90 en todas las siguientes también). Cuando debería de coger el valor de FechaOferta para sumarle 90 (si es el caso) correspondiente a la que este analizando.
Gracias!!