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 =&#34;UPDATE AMORTIZACION SET fecha2 =DATEADD(day, 1, fecha2)WHERE MONTH(fecha2)&#60;&#62;2 AND Day(fecha2) = 29 AND id_pedido=&#34; & 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

[0] Índice de Mensajes

Ir a la versión completa