Imprimir página | Cerrar ventana

Insertar en tabla más de un registro por campo

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=85931
Fecha de impresión: 20/Abril/2024 a las 14:38


Tema: Insertar en tabla más de un registro por campo
Publicado por: damian_colomb
Asunto: Insertar en tabla más de un registro por campo
Fecha de publicación: 03/Abril/2021 a las 17:14
Hola!!
Tengo un problemilla y no se me ocurre como puedo resolverlo, no se si alguien puede ayudarme o se le ocurre como puedo hacer.

Tengo un formulario con varios objetos, (cuadros combinados y cuadros de texto) los cuales sirven para cargar datos, que mediante un botón a través de insert to, se insertan en la tabla correspondiente.

La tabla tiene varios campos, la mayoría con información única por campo, pero hay dos puntualmente que pueden tener más de un registro, son motivo de consulta y diagnósticos.
Funciona correctamente si quiero cargar uno solo, pero el problema es que en la práctica debería insertar más de un registro por campo ejemplo:

Esta tabla la puedo armar bien de la manera que especifiqué más arriba:
Paciente--------Edad--------estudio--------motivo--------diagnósticos--------
---14-------------25---------- VEDA-------- Anemia------- Tumor gástrico-----

El problema es cuando quiero cargar varios motivos y diagnósticos, ejemplo:

Paciente--------Edad--------estudio--------motivo-----------diagnósticos--------
---14-------------25---------- VEDA-------- Anemia-----------Tumor gástrico-----
---14-------------25---------- VEDA-------- perdida de peso------- gastritis-----
---14-------------25---------- VEDA-------- dolor--------------------- polipo-----
No me parece práctico esto, estoy generando valores duplicados paciente, edad y estudio.

Lo ideal sería que se cargue así:
Paciente--------Edad--------estudio--------motivo-----------diagnósticos--------
---14-------------25---------- VEDA-------- Anemia-----------Tumor gástrico-----
                                                              perdida de peso           gastritis
                                                                      dolor                       polipo

Se me ocurre que puedo cambiar la tabla y agregar nuevos campos: motivo1, motivo 2, motivo 3, etc y diagnóstico 1, 2, 3, etc, pero no me parece muy práctico y funcional.
A alguien se le ocurre una manera más práctica de realizar la carga de datos?
Muchas gracias por leerme
Saludos 
Drop here!



Respuestas:
Publicado por: Mihura
Fecha de publicación: 03/Abril/2021 a las 18:29
No está del todo mal la cosa ...  LOL

Podrías poner por 'delante' una tabla Estudios con los campos IdEstudio, Paciente, Edad, Estudio y la que tienes cambiarla a IdEstudio, motivo, diagnóstico, ... es más académico, pero tampoco es que ganes mucho.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: damian_colomb
Fecha de publicación: 03/Abril/2021 a las 18:50
Hola mihura! Gracias por contestar!
No termino de comprender como puedo hacer para agregar varios registros en el campo!


Publicado por: Mihura
Fecha de publicación: 03/Abril/2021 a las 18:56
Un registro por cada juego de valores.

Tal cual lo tienes puesto en el primer post.


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: damian_colomb
Fecha de publicación: 03/Abril/2021 a las 19:08
Paciente--------Edad--------estudio--------motivo-----------diagnósticos--------
---14-------------25---------- VEDA-------- Anemia-----------Tumor gástrico-----
---14-------------25---------- VEDA-------- perdida de peso------- gastritis-----
---14-------------25---------- VEDA-------- dolor--------------------- polipo-----

Esta sería la única forma de cargarlo decis?
Porque en ves de cargarlo así, por ahí es más práctico para después consultar los datos si le agrego a la tabla más campos
Motivo1, motivo2, motivo3 ----Diagnóstico1, diagnóstico2,diagnostico3, etc

Saludos


Drop here!


Publicado por: Mihura
Fecha de publicación: 03/Abril/2021 a las 21:25
No, todo lo contrario, es muchísimo más engorroso.

Plantéate que de necesitas saber cuantos son por Anemia, en vez de una simple consulta de selección de un campo tienes que montar un cirio bastante curioso.




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: damian_colomb
Fecha de publicación: 03/Abril/2021 a las 22:20
Ahora que pasa si armo una tabla donde se inserten varios motivos y la relaciono con la de informes? Estaría en la misma situación, no?Wacko


Publicado por: Mihura
Fecha de publicación: 04/Abril/2021 a las 09:14
Bueno, te vas acercando a los conceptos de normalización de BD.  LOL

Si te preocupa el tema -que lo parece- y quieres hacer las cosas bien busca algo de literatura sobre normalización de BD.

Lo que tú pretendes -la petición del primer post- se traduce en las siguientes tablas:

- Pacientes
- Tipos de Estudio
- Motivos
- Diagnósticos

y por fin:
- Expedientes, relacionada con las anteriores, cuyos campos deberían ser:
     IdExpediente, IdPaciente, Edad, IdTipoEstudio, Observaciones (campo tipo memo para una explicación larga del estudio
- ExpedientesMotivos, tabla que contiene los diversos motivos de un expediente:
    IdExpedienteMotivo, IdExpediente, IdMotivo
- ExpedientesDiagnosticos:
    IdExpedienteDiagnostico, IdExpediente, IdDiagnostico


Pongo una tabla aparte de diagnósticos porque entiendo que un expediente puede tener más de uno, y también sería interesante un campo observaciones tanto en ExpMotivos como ExpDiagnosticos para guardar más información.







-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: damian_colomb
Fecha de publicación: 04/Abril/2021 a las 20:59
Hola Mihura, muchas gracias nuevamente por contestar! Voy a leer un poco más en profundidad sobre la normalización, esA tuve mirando un poco sobre cumplir los 3 órdenes. Igualmente creo para cumplirlo tengo que replantear los formularios
En mi formulario tengo varios objetos arriba, (cuadros de texto y combinados) cuando coloco el DNI de un paciente previamente cargado se devuelven los datos personales desde una consulta a a tabla pacientes, donde previamente se cargaron los datos, solo a modo de visualización, no se trabaja con esos datos. (imagen 1)
Imagen 1:
https://ibb.co/mz1fBjb
Ahora mediante un control de pestaña, pensaba ir cargando los diferentes datos del informe para que se vayan cargando en la tabla informes (imagen 2)
Imagen 2:
https://ibb.co/6bCQxBx

En el cuadro de lista ese que figura en la imagen 2, al hacer doble click en una opción se devuelve en el cuadro de texto verde de la derecha la descripción correspondiente (Para no tener que escribir siempre lo mismo).

Se sigue navegando hasta la última pestaña, donde mediante un botón se guarda la información en la tabla informes
Esto me funciona bien, pero el problema que tengo es que no podia cargar varios motivos o varios diagnósticos.

Ahora bien, con el concepto de normalización, que trataré de indagar un poco más, creo que debería plantearme una forma distinta de ordenar los formularios y lógicamente hacer nuevas tablas.

Se me ocurre que la parte de la imagen uno, se puede guardar en un formulario independiente y cada una de las pestañas de la imagen 2 un formulario independiente para cargar los datos

De esta manera al cargar el  1° informe, en la tabla se me cargan los datos con un id nuevo. Después cada uno de los valores de la pestaña, mediante relaciones, los puedo insertar cada uno en tablas nuevas y después mediante consultas poder traerlos en un formulario ordenado para verlos, imprimirlos y más adelante procesar estadística.

Creo que por lo menos voy encaminado con una idea! Lo voy a probar y después te cuento, muchas gracias Mihura.



Drop here!


Publicado por: damian_colomb
Fecha de publicación: 05/Abril/2021 a las 05:44
Se puede cerrar este post
Drop here!
Muchas gracias
Saludos



Imprimir página | Cerrar ventana