** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Fechas en un DlookUp
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFechas en un DlookUp

 Responder Responder
Autor
Mensaje
Tantrax007 Ver desplegable
Nuevo
Nuevo


Unido: 10/Mayo/2021
Localización: La Rioja
Estado: Sin conexión
Puntos: 40
Enlace directo a este mensaje Tema: Fechas en un DlookUp
    Enviado: 01/Septiembre/2021 a las 09:17
Buenos Días Foro, 

Tengo el siguiente problema: 

Fecha = "#" & CStr(Me.FechaOculta) & "#" 
        CochesEnAmazon = DLookup("Sum([Cantidad])", "Tot_Canales_Nombre", "[Creacion] = " & Fecha)

Con el DlookUp lo que quiero conseguir es sumar la cantidad de artículos que hay de una determinada fecha pero no hayo la manera, siempre me salen errores de sintaxis o de "no coinciden los criterios"....

Lo he intentado de varias maneras incluido como se muestra arriba con los hastags pero nada, no consigo solucionar el problema:

Fecha = "*/" & Mes & "/" & Anyo & "" 
        CochesEnAmazon = DLookup("Sum([Cantidad])", "Tot_Canales_Nombre", "[Creacion] = " & Fecha)

CochesEnAmazon = DLookup("Sum([Cantidad])", "Tot_Canales_Nombre", "[Creacion] = '*/" & Mes & "/" & Anyo & "")

Hay alguien que haya pasado por esto y sepa...? Gracias de antemano
Tantrax 007
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 12707
Enlace directo a este mensaje Enviado: 01/Septiembre/2021 a las 09:34
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Tantrax007 Ver desplegable
Nuevo
Nuevo


Unido: 10/Mayo/2021
Localización: La Rioja
Estado: Sin conexión
Puntos: 40
Enlace directo a este mensaje Enviado: 01/Septiembre/2021 a las 09:54
Esta documentación esta muy bien pero la movida no es que no entienda como funcionan las fechas en VBA o SQL, lo que no entiendo es como puede estar dándome estos errores si estoy respetando la documentación, es decir, pongo las fechas entre ## y sin embargo en el error me muestra que el ultimo # no lo he puesto, Me explico: 

Tengo esto: 

CochesEnAmazon = DSum("[Cantidad]", "Tot_Canales_Nombre", "[Creacion] = #*/*/2020#")
 
Para sumar todos los del año 2020 y en el error me salta: 

Error de sintaxis en la fecha en la expresion de consulta '[Creacion] = #*/*/2020'

Coge la primera almohadilla pero la segunda resulta que se la esta comiendo, ¿Por qué? pues no tengo ni pajolera idea y ese es mi problema....
Tantrax 007
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 12707
Enlace directo a este mensaje Enviado: 01/Septiembre/2021 a las 10:37
Pues tengo claro que no entiendes como funcionan las fechas, ni como hay que usarlas. Tienes que comprender su uso o no lo vas a conseguir ...,

Lo principal, son un número, no una cadena, .... con lo que como derivada, no puedes filtrar un año usando comodines.

Quieres seleccionar un año, hay dos maneras fundamentales:
- seleccionar entre el 1 de enero y el 31 de diciembre de ese año, cláusula Between, -> esta es la buena
- seleccionar aquellas fechas cuyo año sea 9999, para ello usarías la función de VBA que te da el año -> esta ya no es tan buena

Una vez que sepas que camino seguir, los valores de las fechas se los puedes pasar como un número o con formato yanqui entre almohadillas #mm/dd/aaaa# (a recordar que * no es un número de mes válido, ni tampoco de día, ni de año).
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 185
Enlace directo a este mensaje Enviado: 01/Septiembre/2021 a las 13:05
Mihura lo explica claro, y en tu caso y por el ejemplo que pones referido al año 2020 puedes aplicar esto :


Cita
Opción A
CochesEnAmazon = DSum("[Cantidad]", "Tot_Canales_Nombre", "Year([Creacion]) = '2020'")

Opción B
Dim FInicio As Date, FFinal As Date
FInicio = #1/1/2020#
FFinal = #12/31/2020#
CochesEnAmazon = DSum("[Cantidad]", "Tot_Canales_Nombre", "[" & Format("Creacion", "mm/dd/yyyy") & "] Between #" & Format([FInicio], "mm/dd/yyyy") & "# AND #" & Format([FFinal], "mm/dd/yyyy") & "#")



A ver si así lo ves mas claro.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 12707
Enlace directo a este mensaje Enviado: 01/Septiembre/2021 a las 13:32
fcoval,
Yo estaba intentando que él encontrara la respuesta, no dársela. Lo del dicho chino, enseñar a pescar ... Wink
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Tantrax007 Ver desplegable
Nuevo
Nuevo


Unido: 10/Mayo/2021
Localización: La Rioja
Estado: Sin conexión
Puntos: 40
Enlace directo a este mensaje Enviado: 02/Septiembre/2021 a las 10:32
Buenos Días chicos, 

Pues sí, ayer a la tarde conseguí sacar el problema y fué simplemente haciéndolo a través de SQL, dado que con este sí que puede sacarlo con el formato de fecha "Cotidiano".

Como dice Mihura, en realidad no tenía ni idea de las fechas y la documentación que me pasó, aunque me costó entenderla me sirvió, luego probaré con las opciones que me ha dado fcoval a ver que tal pero de nuevo muchas gracias a ambos!!

Se puede cerrar el caso
Tantrax 007
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable