** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cargar datos a tabla relacionada
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCargar datos a tabla relacionada

 Responder Responder
Autor
Mensaje
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Tema: Cargar datos a tabla relacionada
    Enviado: 28/Febrero/2021 a las 16:16
Hola buen día!
Estoy trabajando en una herramienta para una base de datos de pacientes, no es la primera vez que escribo por acá con este fin y me han ayudado muchísimo.
Estoy con problemas para cargar datos a través de un formulario en una tabla relacionada. Antes de ir a la duda puntual, me parece prudente  explicar un poco en que consiste la aplicación, para que pueda hacerme entender un poco mejor, ya que no soy un experto en el tema y éste trabajo lo hago por hobbie, placer y claro, utilidad laboral.
Para resumirlo, mi base de datos consiste en una gestión de estudios destinados a pacientes. Tengo en principio 3 tablas y 3 formularios
  1. Una llamada pacientes, donde se cargan todos los datos afiliatorios del mismo 
  2. Una llamada estudio: donde se deberían cargar los datos del estudio
  3. Una llamada patología: donde se deberían cargar los datos del resultado de patología.
Los datos afiliatorios (fecha de nacimiento, edad, nombre, apellido, etc)  en la tabla de paciente, se cargan en la tabla, a través de un formulario en el cual existen cuadros de texto y combinados. El registro se hace con un botón, el cual a través de un macro incrustado, registra (valga la redundancia) los datos ingresados en los cuadros de texto y combinados, los cuales tienen en su propiedad el origen en la tabla pacientes. 
Las tablas se encuentran relacionadas a través del campo clave "cod_paciente", el cual es autonumérico en mi tabla principal "pacientes" (había pensado usar el campo clave "DNI", que en mi país es un número único y personal que tiene cada persona, pero después pensé que no era recomendable, ya que existía la posibilidad de que se registre un paciente que no tenga DNI) y es numérico en mis tablas secundarias "estudio" y "patología", las cuales tienen "cod_estudio" y "cod_patología" respectivamente como clave principal, con campos autonuméricos.
El formulario en el cual estoy trabajando actualmente es el de "estudio", donde se van a cargar los datos del mismo. A partir de un cuadro combinado, el usuario coloca el DNI y se muestran los datos afiliatorios en cuadros de texto los cuales se corresponden con ese DNI (esta función la hice con ayuda que me brindaron en el foro, a través de la función "column" en una consulta,  la cual trae la columna correspondiente al cuadro combinado donde se coloca el DNI. Parte de esta información es únicamente visual, tiene como finalidad que el usuario no cargue los datos en el registro de otro paciente, pero algunos campos como el informe perse o la edad por ejemplo (que se calcula a partir de un campo calculado en la consulta) se debería registrar en la tabla de "estudios" del paciente correspondiente. Y he aquí mi problema!
No le encuentro la vuelta para registrar los datos del estudio, ya que en el origen de datos de los cuadros de texto, tengo la función de "column". Por otro lado no entiendo como hacer para registrar los datos en la tabla teniendo en cuenta que se deberían poder  registrar varios estudios para el mismo "cod_paciente". Esto se debería hacer a partir de un botón y los datos provienen de cuadros de texto en el formulario.

Espero pueda haberme hecho entender, les agradezco de antemano siempre la ayuda que me brindan y les pido disculpas por lo extenso del texto, pero me parece que sin el contexto adecuado, tal vez no entenderían cual es mi traba, de hecho no estoy completamente seguro que me haya expresado con suficiente claridad.
Saludos



Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14732
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 16:56
Hola,

La gracia de las bases de datos relacionales es la atomización de la información para evitar duplicados innecesarios.

Si tienes una tabla de pacientes con sus, como has mencionado, "datos afiliatorios", esos datos deberían ser inamovibles. Digo deberían porque una vez hice una aplicación dónde me hicieron indicar el "género" del usuario a nivel de detalle porque en la ficha principal del usuario constaba "mujer"... pero no era ese el "género" en el momento de introducir el registro en el detalle. Fin del paréntesis.

A lo que iba.

Después del formulario de pacientes parece que estas trabajando el de estudios. Ese formulario deberá estar basado en la tabla de Estudios (para poder entrar tantos registros como sea necesario por cada paciente). Los datos afiliatorios, al suponerse únicos e invariables, no es necesario volver a registrarlos en cada estudio; bastará con un campo que identifique al paciente y devuelva toda su información. Da lo mismo que sea un estudio que 100.

Por contra hay otros campos que son propios del estudio: las causas, el diagnostico, el tratamiento, la fecha del estudio (que, aplicando matemática nos devuelve la edad del paciente), etc...)

Espero haber aclarado tu duda.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 17:13
Hola Xavi, muchas gracias por contestar! 
Si, estamos de acuerdo con lo que me escribiste, por eso los datos afiliatorios se ven el formulario solo a modo de información, no quiero volver a cargarlos en la tabla "estudios".
El problema radica en cargar los datos en la tabla "estudios" a través del formularios "estudios" y que estos se carguen en el registro de un paciente en particular. No se si me explico bien
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14732
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 17:40
Tu tabla "estudios" debe tener un campo dónde selecciones el paciente y ese es el campo que une ambas tablas.

Si lo que tienes es un formulario "pacientes" con un subformualrio "estudios", esos deberan estar relacionados por el campo identificativo del paciente.
Xavi, un minyó de Terrassa

Mi web
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 17:56
Entonces por lo que entiendo, le agrego un campo nuevo a la tabla "estudio" con el asistente de búsqueda que coincida con algún campo de la tabla "pacientes", de manera que tenga acceso a esa tabla, después con la función column muestro la información en el formulario "estudio" y con un botón y el macro incrustado registro los datos en la tabla "estudios" y se debería automáticamente sincronizar con la relación de la tabla "pacientes".
Creo que se hizo un trabalenguas Dead
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14732
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 18:16
Si, se hizo un trabalenguas pero creo que si, que en esencia lo has pillado.


Xavi, un minyó de Terrassa

Mi web
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 18:55
No he logrado hacerlo de esa forma! No se si me pude expresar correctamente.
Quiero realizar un formulario, con el cual registre los datos  en la tabla "estudios", la cual a su vez la tengo en relación 1-varias con la tabla pacientes, de manera que pueda registrar varios estudios por cada paciente. 
En el formulario de registro tengo como origen de los nuevos datos cuadros de texto vacios y algunos con campos calculados (edad a partir de la fecha de nacimiento)
No se me ocurre como puedo hacerlo
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 22:42
Hola!

Un Paciente puede tener varias patologías y una patología puede tener varios Pacientes?. Entonces la relación entre Paciente y patología tendría que ser varios a varios utilizando la tabla Estudios como una tabla intermedia, eso quiere decir que, Un paciente puede tener varios estudios y una patología varios esttudios.

Te vale así?

Editado por mounir - 28/Febrero/2021 a las 22:47
Un Saludo.
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 01/Marzo/2021 a las 00:19
Hola Mounir, gracias por contestar! En realidad no, creo que no me estoy expresando bien.
Yo tengo una tabla con los datos afiliatorios de los pacientes y otra tabla con los datos donde se registran los estudios, las tengo relacionadas de forma "uno a varios" que esta bien hecho, ya que cada paciente puede tener varios estudios realizados en el tiempo. Lo ejemplifico:

Tabla "pacientes":
cod_paciente--- Nombre--------- Apellido--- Fecha de nacimiento------- etc
01--------------- Damian--------- Perez------ 7/8/1989------- etc
02--------------- pedro----------- albornoz---6/6/1996--------etc

Tabla estudios:
cod_estudio-----cod_paciente----Motivo de consulta----diagnóstico------informe-------
01--------------- 02--------------- Anemia---------------- Úlcera gástrica--bla bla bla----

Ahora mi problema radica para insertar los datos del estudio en la tabla "estudios"
Si yo cargo manualmente los datos en las tablas no tengo problema, puedo ver los datos de de varios  estudios que cargue en cada paciente, por lo que infiero que las relaciones se encuentra bien.
Con respecto a mi tabla "pacientes": Mi campo clave el "cod_paciente" que es "autonumérico" y se relaciona con "cod_paciente" de la tabla "estudios" que es "numérico" y no es campo clave.
Por otro lado en la tabla "estudios" mi campo clave es "cod_estudio" que es "autonumérico"
Si yo en mi formulario  "estudios" en cada cuadro de texto que se llena (Cod_paciente, apellido, motivo de consulta, diagnóstico, informe, etc" en origen de datos coloco el "campo de la tabla estudios correspondiente" no tengo problemas para cargarlo, pero el problema acá es que necesito conocer el "cod_paciente" que es el que se relaciona con la tabla "pacientes".
Estoy tratando usar los eventos y llamar a un cuadro combinado que tengas los datos del cod y el documento, de manera que con "column" me devuelva el "cod_paciente" que le corresponde, pero no estoy pudiendo. 

 


Editado por damian_colomb - 01/Marzo/2021 a las 00:21
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Enlace directo a este mensaje Enviado: 01/Marzo/2021 a las 00:56
Hola!

Ok, es tan fácil como crear un formulario pacientes con origen de registro la tabla pacientes e insertar como subformulario el formulario Estudios, de forma que cuando cambias de pacientes se cambia directamnete de estudio, d esta forma no tienes que cargar código de paciente en el formulario (Subformulario) estudios. En mi opinión es asi como debe ser.
Un Saludo.
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 01/Marzo/2021 a las 01:15
Claro, pero la idea es hacer un formulario para hacer los informes, de manera que a partir de un solo dato cargado por el usuario, la aplicación sepa que tiene que guardar la información en la tabla de "estudios" y que reconozca  el "cod_paciente" a través del dato que se cargó. 
Como el formulario va a ser una ventana, la cual es exclusiva para cargar los datos del paciente, no quiero que haya subformularios a la vista, pero lo voy a tener en cuenta a medida que avance!
Creo que le encontré la vuelta:
Hice un cuadro combinado, en el cual tengo los campos DNI (equivalente al NIF de ustedes acá en Argentina) y cod_pacientes de la tabla "pacientes", de manera que en origen del cuadro combinado tengo:
SELECT Pacientes.DNI, Pacientes.cod_paciente FROM Pacientes; 
Cuando seguí los pasos del asistente para crear el cuadro combinado, en la última opción que dice "almacenar el valor en el campo" y ahí usé el valor en el campo del "cod_paciente" del formulario "estudios"

En las propiedades formato, del cuadro combinado, particularmente en ancho de columna coloqué solo los valores del segundo campo, de manera que quede:
2,544cm;0cm
De esta manera, el usuario antes de realizar el informe, coloca solo el DNI del paciente y automaticamente acces carga los datos del formulario en la tabla "estudios" y como se carga el cod_paciente correspondiente al DNI, cuando visualizo la tabla pacientes, se encuentra el estudio cargado.
Muchísimas gracias a todos por su ayuda! Actualmente está haciendo lo que necesitaba, pero si existe otra manera más eficiente de hacerlo, por supuesto estoy abierto a sugerencias y cambios
Saludos
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 177
Enlace directo a este mensaje Enviado: 05/Marzo/2021 a las 03:42
Muchas gracias a todos! Esta solucionado, se puede cerrar este hilo
Drop here!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable