Restar fechas en Access 2007

Respuesta de
andi_andi
a
Usuario
Buenas.
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?
Muchas gracias.
Avatar
Experto
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
Usuario
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.
Avatar
Experto
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
Usuario
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.
Avatar
Experto
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á
Usuario
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
Avatar
Experto
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


Un saludo
Usuario
Lo siento por las molestias que ocasiono.
Lo he intentado y nada.
Mi mail es doctaton@hotmail.com
Muchas gracias de verdad, eres un verdadero experto.
Avatar
Experto
Ya te envíe el email
Usuario
Excelente experto, con muchos conocimientos y dedicación.
Muchas gracias.