Programación General > Visual Basic 6.0 e inferiores
Cambiar Dia En Fecha
(1/1)
UserCode:
Hola, saludos a todos
No sé si esto es un caso unico, pero tengo algo en lo que debo cambiar el dia de la fecha, de varios registros, por ejemplo de 29/mm/yyyy a 30/mm/yyyy
Entonces probando pues el codigo me lo cambia pero me ha costado y me da problemas cuando se llega a Febrero 29/mm/yyyy ya que obviamente da error cuando intenta pasarlo a 30. No he podido validar bien como hacer para que se lo salte, que cambie todos los dias de 29 a 30 de cada fecha exectuando la de febrero.
Tambien no he visto bien el validar que verifique que si el dia ya es 30/ que no lo incremente +1 ya que lo pasara a 31/
--- Código: Text --- '............................................................... 'Cambio de dia de las Fechas: '............................................................... strSQL = "Select * From AMORTIZACION Where id_pedido=" & txtPedido & "" Set rsDatos = New Recordset rsDatos.Open strSQL, strConex, adOpenStatic, adLockOptimistic If rsDatos.RecordCount > 0 Then rsDatos.MoveFirst While Not rsDatos.EOF If txtPedido = rsDatos("id_pedido") Then If Month(rsDatos("fecha2")) <> "02" Then rsDatos("fecha2") = CDate(rsDatos("fecha2")) + 1 rsDatos.Update End If End If rsDatos.MoveNext Wend MsgBox "Se Termino de Hacer los Cambios", vbInformation, "Terminado" MSHF.Clear CargarDatos End If '...............................................................
Agregue entre lineas el If Month(rsDatos("fecha2")) <> "02" Then tratando de que no entre al codigo de:
rsDatos("fecha2") = CDate(rsDatos("fecha2")) + 1
rsDatos.Update
Pero no consigo que se valide bien, el CDate() + 1 es el que me incrementa el dia de la fecha.
No sé si alguien ha hecho algo así o le ha tocado algo parecido pero por favor quien pueda ofrecerme su opinión sobre ello, me ayudaria a ver como podria completar lo faltante.
Saludos y buen fin de semana, pasenla bien. :comp:
F_Tanori:
Porque no utilizas SQL dierecto?
estas usando DAO?
Ejemplo de la consulta, tal vez haya que hacer algun cast de formato de fechas o variaciones de SQL server
--- Código: Text --- SQL ="UPDATE AMORTIZACION SET fecha2 =DATEADD(day, 1, fecha2)WHERE MONTH(fecha2)<>2 AND Day(fecha2) = 29 AND id_pedido=" & txtPedido
Saludos
UserCode:
compadre lo felicito, again B)
directo por una SQL, medio lo pense, igual debia buscar con el amigo google eso, es culpa mia, yo por estar de terco por hacerlo como lo escribi, pero pensaba copiar una SQL en el block de notas y correrla al abrir la tabla en SQL Server, no en VB, como me puse a hacer una ventana me fui por lo nativo, por el lenguaje. Pero claro es más directo asi, y ya que la cuestion esta hecha en VB pues lo corro desde ahi entonces.
Yo habia probado en mi codigo algo asi un If IsDate(CDate(rsDatos("fecha2"))+1)=True Then ya que 30/02/2008 no es una fecha valida, pero el 29/02/2008 ya no daba el error al llegar a esa fecha pero la cambiaba a 01/03/2008, volvia mas o menos en lo mismo.
Ya casi no hago mucho en VB pero se presento esto, muchas gracias, el query no se pela. :good:
Navegación
Ir a la versión completa