Mostrar último ciclo en Access

Tengo una tabla en access donde en cada fila me aparece un ciclo de tratamiento de pacientes (por lo cual a veces pueden ser 2, 3, 4... Filas por paciente) y las fechas de cada ciclo.
Lo que quiero hacer es una consulta que busque la ultima fecha y me muestre 1 fila por paciente con la última fecha y el ciclo de tratamiento.
Es una tabla sencilla con 3 variables (Codigo paciente, Ciclo y Fecha de ciclo), pero no consigo que me aparezca 1 fila por paciente con su último ciclo.

Respuesta
1

Carlos: Si haces una consulta de Datos agrupados, y pones en la Fecha >> Ultimo debería mostrarte el dato que buscas. Saludos >> JTJ

Carlos: Puede que con último se pueda producir alguna anomalía, por tanto si no te da el resultado adecuado, pones >> Máximo

JTJ

Muchas gracias Jacinto por tu tiempo. He probado como dices tanto con último como máximo y me salen todos los datos. Y yo por ejemplo, me gustaría que aparecieran únicamente las que marco en rojo.

Carlos: Genera una Consulta en blanco>> Vas a la vista SQL y copias y pegas éste código.

SELECT Max([NombreTuTabla].[Date]) AS UltFecha, [NombreTuTabla].[Patient ID], DLast("Event Name","NombreTuTabla","[Patient ID] = '" & [Patient ID] & "'") AS UltEvent
FROM [NombreTuTabla]
GROUP BY [NombreTuTabla].[Patient ID]
ORDER BY Max([NombreTuTabla].[Date]);

He hecho muchas observaciones en éste foro sobre los Nombres con espacios, acentos etc, que solo causan problemas. Lo vuelvo a hacer. >> JTJ

Me comentas si sigues con dificultades.

Mil gracias Jacinto por tu gran ayuda.

Como bien comentas he aprovechado y quitado los espacios.

Me sale la fecha correcta, pero el único que no consigo poner es el ciclo. Sale, unos ciclos que en la tabla original no tienen fecha.

Por ejemplo en el paciente 1012-1, sale la fecha correcta pero el evento Follow-up, cuando debería aparecer C01-D15, lo mismo con el paciente 1012-2 sale la fecha correcta pero un evento Screening cuando debería salir C02-D22.

Carlos: Vamos a dar otra vuelta de tuerca, porque la verdad es que no había probado lo que te he enviado.

Te pongo una imagen de Consulta que funciona y cuyos Nombres debes adaptar.

Saludos >> JTJ

Respondiendo a Eduardo:

Creo que en mis respuestas, no he dejado entrever que la respuesta de Julián fuera incorrecta.

De hecho no la he probado, pero me parece muy acertada como todas las que que aporta Julián y Eduardo. Un cordial saludo a ambos. >> JTJ

Muchas gracias Jacinto, he probado pero me da error. Te adjunto la expresión que puse por si le estoy errando en algo:

UltEvent: DBúsq("EventName";"UltimoCiclo";"PatientID =" & [PatientID] & "'" & " AND Date = #" & Format([UltFecha];"mm/dd/aaaa") & "#")

De momento veo que falta una comilla en = " PatientID >>

UltEvent: DBúsq("EventName";"UltimoCiclo";"PatientID ='" & [PatientID] & "'" & " AND Date = #" & Format([UltFecha];"mm/dd/aaaa") & "#")

Otras consideraciones>> El Nombre de campo cuyo nombre es Date, te puede causar problemas, porque es una palabra "Reservada" de Access. Puedes ponerle >> FEvent o DateEvent o.. JTJ

Buenos días Jacinto, disculpa la demora pero he estado con unos problemas personales y no he podido ver.

He probado como lo dices y me sigue saliendo el error que te muestro antes. No aparece la última Fecha y en el UltEvent sale Error.

Lo he modificado como me has dicho así :

UltEvent: DBúsq("EventName";"UltimoCiclo";"PatientID ='" & [PatientID] & "'" & " AND FCiclo = #" & Format([UltFecha];"mm/dd/aaaa") & "#")

Carlos: Espero se hayan resuelto esos problemas personales que me citas.

Te ajunto enlace para que te descargues el ejemplo.

https://www.mediafire.com/file/m9u424315q7x2yu/UltEventYFecha.rar/file 

Lo de tener muchos campos sin datos, puede entorpecer y dar errores. Saludos >> JTJ

¡Muchas Gracias Jacinto!  Muy amable por todo.

Lo probaré.

Muchas gracias por toda tu ayuda y tu tiempo como siempre.

Un abrazo.

Carlos.

2 respuestas más de otros expertos

Respuesta
1

Si tengo la tabla Revisiones como

Y con ella creo una consulta, donde le añado un campo también llamado Prueba, como ves en la ventana de zoom

Cuando la abro

De todas formas, si quieres un consejo, pásate al código VB.

Muchas gracias Julián, intento esta noche verlo y sino mañana te comento cualquier cosa.

Buenos días Julián, muchas gracias por tu tiempo. He seguido los pasos que me comentas. El primer inconveniente sería crear lo que tú tienes como ID Pedido, ya que en mi tabla no la tengo, lo cual me haría tener que poner esa clave a mano con cada descarga (porque estos datos que tengo, son de una base de datos que está en web). Igualmente, en el paso previo a la importación al access, ya se la puedo poner si fuese necesario.
Pero igualmente aún creando esa variable (para mí se llama IDCOD), no me sale correctamente.

Pongo aquí la expresión que he usado por cualquier error que le veas:

UltCICLO: DÚltimo("EventName";"UltimoCiclo";"IDCOD=[UltimoCiclo].[IDCOD] and PatientID="" & [UltimoCiclo].[PatientID] & "")

Perdón Julián, en el anterior mensaje me olvidé de poner correctamente el Total, te adjunto como me queda con el total correcto:

Carlos, no necesitas el Idpedido para nada. Basta con usar campos que identifiquen de manera única a un registro. Por ejemplo, vamos a suponer que tienes una tabla Clientes, con el campo, entre otros, NIF o DNI,, como ese valor es único para cada persona, puedes usarlo en un criterio, por ejemplo

TextoA=dlookup("ciudad","clientes","Nif='" & me.buscarporNif & "'")

Es decir, búscame el valor del campo Ciudad en aquel registro de la tabla Clientes en que el valor del campo Nif sea igual al que acabo de escoger. Por ejemplo, supongamos que tengo la tabla UltimoCiclo( no me había fijado en que el PatientId es texto, pero en la instrucción ya te diré como ponerlo)

Si construyo la consulta( le he añadido la tabla Clientes de donde saco las nombres porque siempre he pensado que un frío número no dice nada, pero un nombre sí)

Cuando la abro

En tu caso, al ser PatientId texto tendrías que ponerlo como

...... and PatientId='" &[ultimociclo].[patientId] & "'")

Es decir apóstrofe comillas & y cierra & comillas apóstrofe comillas

De todas formas, es mi opinión que, en vez de consulta podrías hacer una tabla y a medida que vas poniendo los datos en el formulario que te vaya actualizando esa tabla al valor del último registro que escribieras de cada paciente. Así tendrías una tabla con las últimas ¿revisiones? De cada paciente única y exclusivamente.

Muchas gracias Julián, el problema de la clave, es que no existe. Es una tabla que descargo de un sistema online que no te permite descargar la llave. Lo que puedo descargar es lo que muestro en pantalla. Por eso la he creado y no me molestaría crearlas en un futuro.

He puesto el siguiente código y me da error:

UltEvent: DUltimo("EventName";"UltimoCiclo";"IDCOD ='" & [UltimoCiclo].[IDCOD] and PatientId='" &[ultimociclo].[patientId] & "'")

Me dice que "Una cadena puede tener un máximo de 2048 caracteres incluidas las comillas de apertura y de cierre.

Sobre crear una tabla aparte es difícil, porque son datos que son decargados de una base online, donde son muchos pacientes y muchos ciclos, el cual se va actualizando continuamente. Tengo que descargar esa tabla y no me daría el tiempo de ir viendo los nuevos eventos ya que pueden ser muchos por día.

Un abrazo, la verdad que no sé que está pasando porque nada de lo que me están ayudando funciona. No sé si soy yo o es como lo importa el Access desde el Excel.

Si quieres, repito, si quieres haz una copia vacía de la tabla UltimoRegistro y me la mandas a [email protected]

La miro y te construyo la consulta

Si lo haces, en el asunto del mensaje pon tu alias Carlos Pastorini, ya que si no sé quien me escribe ni los abro.

Respuesta
1

La respuesta que le da Julián es totalmente acertada no hay que dar más vueltas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas