Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sumar un mes a una nueva fecha

371 views
Skip to first unread message

kesadeixon

unread,
Nov 11, 2006, 7:10:55 PM11/11/06
to
Hola,

He visto varias consultas que hacen referencia a poder sumar años,
meses o días a fechas existentes, pero no me está funcionando a la
hora de crear una función.

El ejemplo es el siguiente:

Public Const P As Date = #1/1/2005 6:15:30 PM#
Dim cad_14dia As Date

cad_14dia = DateAdd("d", 1, P)

Así, el mensaje que me da access cuando desde la ventana de inmediato
escribo ?cad_14dia es "Error de compilación: El procedimiento externo
no es válido"

¿Alguien tiene idea de qué es lo que hago mal?

Muchas gracias!!!!!

kesadeixon!

Juan Gustavo Fogelman

unread,
Nov 11, 2006, 7:29:29 PM11/11/06
to
si la fecha la pasas con dim y la declaras luego, en vez de usar una
constante publica, lo toma?
la otra es que no le guste el formato de fecha
prueba:
cad_14dia = DateAdd("d", 1, format(P, "mm/dd/yyyy"))
a ver que hace
o
cad_14dia = DateAdd("d", 1,"#" & format(P, "mm/dd/yyyy")& "#")

y la "d" es para sumar un dia, y en el asunto dices sumar un mes, que es "m"
pero esto ultimo ya lo sabes


"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje
news:1163290255.1...@b28g2000cwb.googlegroups.com...

Eva

unread,
Nov 12, 2006, 3:39:18 AM11/12/06
to
Y, además de intentar ejecutarlo desde la ventana de inmediato, ¿lo has
intentado desde algún otro sitio?

"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje
news:1163290255.1...@b28g2000cwb.googlegroups.com...

kesadeixon

unread,
Nov 12, 2006, 11:21:44 AM11/12/06
to
Hola Juan Gustavo,

He probado todas las posibilidades que me comentas, y no hay forma.

Es más, te puedo decir que access me selecciona una parte concreta
cuando lanza el error.

La parte que me se selecciona es la "d"

¿No sé donde está fallando? ¿A vosotros os va?

Gracias!!

Jose


Juan Gustavo Fogelman ha escrito:

kesadeixon

unread,
Nov 12, 2006, 11:23:47 AM11/12/06
to
Hola Eva,

Sólo lo he probado desde la ventana Inmediato. De donde me recomiendas
que lo pruebe tb???
Podría probar desde un formulario o una consulta, pero entiendo que me
daría un error similar, no??

Gracias!

Jose


Eva ha escrito:

Eva

unread,
Nov 12, 2006, 11:51:19 AM11/12/06
to
Yo lo he probado desde la ventana de inmediato, introduciendo primero la
asignación de la constante y después la instrucción datediff, y me ha
funcionado perfectamente. TAmbién he hecho la prueba en el evento al cargar
de un formu, y todo perfecto....

Un saludo

Eva.

"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje

news:1163348627.5...@b28g2000cwb.googlegroups.com...

kesadeixon

unread,
Nov 12, 2006, 3:24:34 PM11/12/06
to
Hola Eva,
supongo que debe ser una simple confusión, pero la funcion que he
utilizado ha sido DateAdd, no datediff, pero esto me ha hecho volver a
pensar con lo que me estabas diciendo, y claro, el tema está en que yo
no he creado una función, sino que directamente aplicaba la variable.

Ya me funciona, el código es:

Public Const P As Date = #1/1/2005#

Public Function cad_14dia() As Date


cad_14dia = DateAdd("d", 1, P)

End Function

Muchas gracias por hacerme verlo desde otro prisma!!!!

Jose


Eva ha escrito:

Eva

unread,
Nov 12, 2006, 3:39:55 PM11/12/06
to
Hola otra vez

Dateadd y datediff funcionan exactamente igual, y tu sintaxis anterior era
correcta, debería funcionar perfectamente. La actual también, pero no estás
corrigiendo nada, sino planteando el tema de otra forma.

Un saludo

Eva.

"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje

news:1163363074.8...@k70g2000cwa.googlegroups.com...

kesadeixon

unread,
Nov 12, 2006, 4:41:54 PM11/12/06
to
Pues no entiendo qué es lo que hago mal, pero weno, de la otra forma
ya me basta.

Muchas gracias de nuevo :D

Jose


Eva ha escrito:

Ju@nk

unread,
Nov 12, 2006, 12:07:41 PM11/12/06
to
La verdad que hacer una funcion con lo que hace una función es rizar el rizo
o reinventar la polvora, pero si pones las varibles con el tipo adecuado, no
tiene por que fallar

Public Function SumaTiempo(ByVal UnaFecha As Date, _
ByVal Cantidad As Double, TipoSumar As String)
SumaTiempo = DateAdd(TipoSumar, Cantidad, UnaFecha)
End Function


esto sumaría 18 meses
msgbox sumatiempo(#1/1/2006#,18,"m")
y devolverá 1/7/2006

--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
Ju@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**


"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje

news:1163348504.0...@h54g2000cwb.googlegroups.com...

kesadeixon

unread,
Nov 13, 2006, 4:52:38 PM11/13/06
to
Hola Ju@nk, creo que no te sigo. Lo he probado con tu ejemplo desde
Access y no me funciona, y tampoco veo como poder aplicar tu ejemplo a
mi caso... :'(

Me lo puedes explicar un poco más lentito...

Muchas gracias!!!!

Jose!!


Ju@nk ha escrito:

Ju@nk

unread,
Nov 14, 2006, 2:01:41 AM11/14/06
to
El ejemplo desde Access si funciona, lo he probado yo y funciona
perfectamente si le pides
sumatiempo(#1/1/2006#,18,"m") te devuelve la fecha correcta

--
**
Colabora con el grupo, contesta a este mensaje y dinos si te sirvió o no la
respuesta dada.
Muchas gracias.

Salu2
Ju@nK [MVP Access] [DCE2003 ***] + VSTO [DCE2005 **]
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank
www.juank.tk
www.mvp-access.com
¿Que es un MVP?, enterate en http://mvp.support.microsoft.com

Nota: El contenido de este mensaje, así como el código
fuente que pueda ir incluido en el mismo, se proporciona
«COMO ESTÁ», sin garantías de ninguna clase, y no otorga
derecho alguno. Usted asume cualquier riesgo al poner en
práctica, utilizar o ejecutar la sugerencia del presente mensaje.
**
"kesadeixon" <kesad...@hotmail.com> escribió en el mensaje

news:1163454757.9...@h48g2000cwc.googlegroups.com...

0 new messages