• Sábado 27 de Julio de 2024, 02:42

Autor Tema:  Cambiar Dia En Fecha  (Leído 1417 veces)

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Cambiar Dia En Fecha
« en: Domingo 17 de Febrero de 2008, 02:44 »
0
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
  1.  
  2.     '...............................................................
  3.     'Cambio de dia de las Fechas:
  4.     '...............................................................
  5.     strSQL = "Select * From AMORTIZACION Where id_pedido=" & txtPedido & ""
  6.     Set rsDatos = New Recordset
  7.     rsDatos.Open strSQL, strConex, adOpenStatic, adLockOptimistic
  8.     If rsDatos.RecordCount > 0 Then
  9.         rsDatos.MoveFirst
  10.         While Not rsDatos.EOF
  11.             If txtPedido = rsDatos("id_pedido") Then
  12.                 If Month(rsDatos("fecha2")) <> "02" Then
  13.                     rsDatos("fecha2") = CDate(rsDatos("fecha2")) + 1
  14.                     rsDatos.Update
  15.                 End If
  16.             End If
  17.             rsDatos.MoveNext
  18.         Wend
  19.         MsgBox "Se Termino de Hacer los Cambios", vbInformation, "Terminado"
  20.         MSHF.Clear
  21.         CargarDatos
  22.     End If
  23.     '...............................................................
  24.  
  25.  

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:
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Cambiar Dia En Fecha
« Respuesta #1 en: Domingo 17 de Febrero de 2008, 11:00 »
0
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
  1.  
  2. SQL =&#34;UPDATE AMORTIZACION SET fecha2 =DATEADD(day, 1, fecha2)
  3. WHERE MONTH(fecha2)&#60;&#62;2 AND Day(fecha2) = 29 AND id_pedido=&#34; & txtPedido
  4.  
  5.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Cambiar Dia En Fecha
« Respuesta #2 en: Domingo 17 de Febrero de 2008, 14:13 »
0
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:
Si esto es Leído por accidente, induzca al vomito