Restar fechas en Access 2007

Tengo una base de datos de pacientes. En un campo (formato fecha) tengo la fecha de ingreso del paciente (el campo se llama "INGRESO") en otro campo, (también formato fecha) tengo la fecha de alta (nombre del campo: "ALTA") y en otro campo, los días de ingreso hospitalario que serían la resta entre ambas fechas.
Mi pregunta es:
1º: que formato del campo debe ser, ¿numero o fecha?
2º como hago para que reste ambas fechas y de como resultado un numero entero en días
He intentado dándole formato "numero" y en valor predeterminado insertar la función difFecha así:
DifFecha([d];[alta];[ingreso];[«primerDíaSemana»];[«primeraSemana»])
Pero me da siempre error "No se pudo encontrar el campo 'd'
¿Podrían por favor explicarme como se hace?
Respuesta
1
No te lies tanto con poner expresiones comprejas, si quieres saber los días restantes te dejo aquí una forma sencilla
Esto lo quitas
DifFecha([d];[alta];[ingreso];[«primerDíaSemana»];[«primeraSemana»])
Y pones en su lugar esto
Días:FechaBaja - fechaAlta
Gracias por contestar tan rapido, pero lo he intentado y me da error de sintaxis.
A lo mejor lo pongo donde no corresponde, (lo pongo en valor predeterminado, con formato numero). He intentado poner lo siguiente:
Días:FechaBaja - fechaAlta
Días:FechaINGRESO - FechaAlta
FechaBaja - fechaAlta
Días:FechaALTA - fechaINGRESO
=Días:FechaBaja - fechaAlta
y asi sucesivamente y siempre da error.
Ten en cuenta que el formato del resultado es numero y el de fecha de ingreso y alta es en fecha.
Lo siento pero no manejo muy bien el Access
Muchas gracias por tu ayuda.
Para poder poner Días tiene que tener en la consulta visible los campos fechaIngreso y fecha Alta.
Y con solo poner en una celda Días:FechaALTA - fechaINGRESO te funciona, la sintaxis es correcta. Revisa que no tengas valores nulos si existen, en las celdas donde están fechaIngreso y fecha Alta en criterios pones en cada una
Negado es Nulo, así si hay nulos no te dará error
Hola experto.
Antes que nada gracias por tu paciencia y por tu intención de ayudarme. Al poner lo que me dices me da "error de sintaxis" o "error de tipos". De todos modos creo que el error esta en la consulta... ¿qué quieres decir con que tiene que estar visible los campos fechaingreso y fechaalta de la consulta?
Lo siento pero estoy muy agobiado. ¿Si no te molesta podrías intentar explicármelo como si fuera un retrasado mental?
Gracias por ayudar.
Es fácil lo que te pongo, a ver...
Haz una nueva consulta con la tabla que necesitas, "no la hagas con el asistente", dentro de la consulta en diseño
Añade los campos de fecha, luego pones día:fecha1-fecha2
Y ya está
Gracias por tu paciencia.
He hecho lo que me has dichyo siguiendo estos pasos:
1- Creo una consulta en modo diseño
2- Añado la tabla "madre" llamada pacientes
3- Selecciono las 3 fechas a relacionar, es decir "ALTA" "INGRESO" y "TOTAL DE DÍAS"
4- En la columna de "TOTAL DE DÍAS" añado "día:FechaALTA-fechaINGRESO" y he intentado también "día:Fecha1-fecha2"
5- Cierro la consulta
6- Voy a la tabla madre y nada, sigue sin calcularlo
7- Voy a la Consulta creada y no me la deja abrir: Error: "No coinciden los tipos de datos en la expresión de criterios"
Me da bronca porque seguro que estoy trabado en una tontería.
Un saludo y nuevas gracias
En la consulta solo añade dos campos fechaini fecha fin y después lo que te pase días:fini-ffin
No hace falta registrar el resultado, si cada vez que ejecutes la consulta te dará el resultado Días. En un formulario, una vez que tienes la consulta, añades campo FechaIni y campo fecfaFin y campo días. Sino dame tu email que te paso la consulta
Lo siento por las molestias que ocasiono.
Lo he intentado y nada.
Mi mail es [email protected]
Muchas gracias de verdad, eres un verdadero experto.
Ya te envíe el email

1 respuesta más de otro experto

Respuesta
1
Lo mejor es que lo hagas por código colocando la siguiente sentencia en el evento perder el enfoque de la segunda fecha
Private Sub Fecha2_LostFocus()
"nombrecamporesultado"= DateDiff("d", fecha1, fecha2)
End Sub
Cieera

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas