Tengo una duda access 2010 dsum vba

Tengo la siguiente duda cuando ejecuto el siguiente código en en access 2013 ( con office en ingles) si funciona pero en access 2010 version español no funciona..

Me.TOTALMEDI.Caption = DSum("[CANTIDAD]", "HISTOENTRADA", "[FECHA] >= #" & Me.DESDE & "# And [FECHA] <= #" & Me.HASTA & "# And [CODIGO] = '" & Me.MEDICAMENTOS.Column(2) & "'")

En office 2013 en version ingles si funciona.

En office 2010 version no funciona

3 Respuestas

Respuesta
1

Pruebe con este código

Me.TOTALMEDI.Caption = DSum("[CANTIDAD]", "HISTOENTRADA", "[FECHA] >= #" & Format(Me.DESDE, "yyyy/mm/dd") & "# And [FECHA] <= #" & Format(Me.HASTA, "yyyy/mm/dd") & "# And [CODIGO] = '" & Me.MEDICAMENTOS.Column(2) & "'")
Respuesta

La versión inglesa trabaja con las fechas en formato americano (algo esperado y clásico), en la versión castellana el formato de fecha es el europeo (y más países también)

EL código funciona pero las fechas las interpreta mal (se auto engaña si el mes y día son 'intercambiables', del día 12 en adelante ya asume las correctas y le complica la vida al usuario con esa dualidad).

Una solución 'universal' (valida incluso para el formato más realista, el ¿asiático? O el japonés que utiliza yyyy mm dd), consiste en no utilizar el formato texto sino el fecha de Access (convertirlas con CDate) y para obtener una manipulación más sencilla, convertirlas a numero con CDbl (indispensable si tiene parte horaria) o a entero si no la tiene.

Es la garantía de que funcionara en toda la esfera (en todas las zonas del planeta).

Respuesta

Es posible que el código no funcione en Access 2010 versión español porque el formato de la fecha es diferente al de la versión inglesa. En la versión inglesa, el formato de la fecha es mm/dd/yyyy, mientras que en la versión española es dd/mm/yyyy. Por lo tanto, al usar el operador # para delimitar las fechas, se puede producir un error o un resultado incorrecto.

Para solucionar este problema, se puede usar la función Format para convertir las fechas al formato adecuado antes de usarlas en la función DSum. Por ejemplo:

Me.TOTALMEDI.Caption = DSum("[CANTIDAD]", "HISTOENTRADA", "[FECHA] >= #" & Format(Me.DESDE, "mm/dd/yyyy") & "# And [FECHA] <= #" & Format(Me.HASTA, "mm/dd/yyyy") & "# And [CODIGO] = '" & Me.MEDICAMENTOS.Column(2) & "'")

De esta forma, se asegura que las fechas se interpreten correctamente independientemente de la versión de Access o del idioma.

Espero que sea útil backrooms

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas