Manejo de #Error campo Date en Access

Les traigo una duda, para saber como anticiparme a un "error" y saber como manejarlo desde ya.

Estoy haciendo un reporte en Access que permite extraer el cobro por vendedor diario. El objetivo es que esto quede diseñado una sola vez, y que todos los días se ejecute a cierta hora, y sin importar el mes, todo esto lo manejare desde el VBA Form Access.

Les muestro parte de mi consulta:

SELECT T.Salesrep, 
IIF (T.Check ="01/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['01'], IIF (T.Check ="02/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['02'], 
IIF (T.Check ="03/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['03'], IIF (T.Check ="04/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['04'], 
IIF (T.Check ="05/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['05'], IIF (T.Check ="06/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['06'], 
IIF (T.Check ="07/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['07'], IIF (T.Check ="08/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['08'],
... 

La duda que tengo es cuando llego a los ultimas días del mes:

IIF (T.Check ="29/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['29'], IIF (T.Check ="30/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['30'], 
IIF (T.Check ="31/" & Month(date()) & "/" & Year(date()), Sum(T.Amount), 0) AS ['31']

Por obvias razones al ejecutar la consulta, me aparecen todos los demás campos llenos pero estos me aparece un mensaje que dice #Error.

Como puedo adelantarme un agregar un manejador de error en la consulta, para que cuando se den estos meses de 30 o 28 me agregue valor 0 (cero).

Como les decía, es para anticiparme a un error que abro este hilo.

1 respuesta

Respuesta
4

No me meto en el desarrollo de la consulta, etc. ¿Has probado a usar el último día de cada mes.

Entre otras ventajas, te tiene en cuenta los años bisiestos. En este caso el código es simplemente

Private Sub Fecha_AfterUpdate()
Ultimo = DateSerial(Year([Fecha]), Month([Fecha]) + 1, 0)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas