** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Recuperar datos a partir de tablas
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoRecuperar datos a partir de tablas

 Responder Responder
Autor
Mensaje
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 97
Enlace directo a este mensaje Tema: Recuperar datos a partir de tablas
    Enviado: 18/Febrero/2021 a las 00:22
Hola! 
Tengo una base de datos con datos de pacientes (DNI, nombre, apellido, etc) pude realizar el formulario para cargar nuevos datos en la misma, pero el problema lo tengo cuando quiero utilizar esos datos en otro formulario, más precisamente para escribir un informe. 
En conclusión, no se por donde buscar, necesito saber si se puede realizar con alguna función o debo escribir un macro en vb para ello.
La idea es realizar un formulario en el cual a partir de que se carga el numero de documento, se completan los cuadros de texto con los datos que se relacionan con el mismo.
No se si me expliqué bien.
Por ejemplo:
Base de datos: 
---DNI---Apellido---Nombre---Sexo---
3481734--Perez----Juan-------Masculino---
En el formulario tengo varios cuadros de textos vacios (Apellido, nombre, sexo, etc), la idea es que al colocar el DNI, complete los cuadros con los datos relacionados, en este caso se colocaria 3481734 y automaticamente se completarian los cuadros de texto con el perez, juan y masculino.

Estoy medio perdido por donde buscar entonces se me está haciendo complicado encontrarle la vuelta.
Muchas gracias por la ayuda de siempre
Saludos


Editado por damian_colomb - 18/Febrero/2021 a las 00:24
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6164
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 08:39
Hola!

Tan simple como crear un cuadro combinado que incluya los DNIes y seguir el asistente de controles, seleccionas la tercera opción y ya está. Eso sí, el formulario tendría que tener si origen de registro la tabla en cuestión.

https://support.microsoft.com/es-es/office/permitir-a-los-usuarios-buscar-un-registro-seleccionando-un-valor-de-una-lista-e3ed7711-433a-4931-9cab-b0f71a90c329
Un Saludo.
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 97
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 16:37
Hola! Gracias por responder.
En realidad el cuadro combinado no sería el ideal.
Mi intención es que se completen todos los datos a partir de un único registro, es decir el único campo que completaría el usuario sería el de DNI.
Una vez completado ese campo, la idea es que se completen los cuadros de textos correspondientes con todos los datos relacionados a ese DNI, de manera que queden como base para una futuro informe.
Estaba investigando la función Dbusq, tal vez pueda ayudarme


Editado por damian_colomb - 18/Febrero/2021 a las 16:38
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5393
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 17:07
Con DBusq se puede pero hay mas formas, quizás column es mas simple o en automático que lo haga access, algunas formas de hacerlo:

Saludos.
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6164
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 17:09
Hola!

Si copiases el código que genera el cuadro combinado y lo aplicases en el evento al salir del cuadro de texto tendrías el mismo rsultado.

Editado por mounir - 18/Febrero/2021 a las 17:10
Un Saludo.
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 97
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 19:51
Muchas gracias a los dos por sus respuestas!
Es muy bueno el blog que me pasaste emi, pasa que todos los ejemplos son a apartir de un cuadro combinado que se hace con asistente.
En mi caso, el dato inicial, parte de un cuadro de texto, DNI, a partir del cual se deberian completar todos los datos de los otros cuadros de texto, no se si se entiende bien!
No puedo hacerlo funcionar tampoco con el Dbúsq, probé con un código usando la función dlookup, pero tampoco me funciona.
Les transcribo el código y mi interpretación a ver si se dan cuenta cual es mi error:

Apellido = DLookup("[apellido]", "[pacientes]", "txt_dni_veda=" & dni)

Por lo que interpreto, lo que le estoy diciendo es que:

Apellido = que devuelva el campo apellido, de la tabla pacientes,  según el valor del cuadro de texto txt_dni_veda que coincida con el campo dni de la tabla pacientes.

El problema es que el al colocar el DNI en el cuadro de texto "txt_dni_veda", el cuadro texto donde coloqué el código queda en blanco



Editado por damian_colomb - 18/Febrero/2021 a las 19:53
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13832
Enlace directo a este mensaje Enviado: 18/Febrero/2021 a las 23:39
Hola,

Empiezo por el final: ese DLookup no funciona porque el orden de la equivalencia es al revés. Además se podría dar el caso de que el campo dni fuera de tipo texto y tu lo estás tratando como un número. Añádele apostrofes y debería funcionar:
Me!Apellido = Dñlookup("[Apellido]", "[pacientes]". "dni = '" & Me!txt_dni_veda & "'")

Por otro lado yo insistiría con el tema del cuadro combinado cómo método de rellenado.
Te propongo 2 opciones partiendo ambas de un cuadro combinado con los campos necesarios en sus columnas (aunque no esten visibles). Imaginemos que el cuadro combinado tiene 4 columnas (dni, nombre, apellido y sexo)
Opción A: que los controles dónde debas mostrar los otros datos se basen en una llamada a esas columnas. Así la propiedad origen del control apunta a la propiedad column del control cboDNI en su columnas adecuada:
=cboDNI.Column(1) devolveria el nombre
=cboDNI.Column(2) devolveria el apellido
=cboDNI.Column(3) devolveria el sexo

Nota: la primera columna tiene índice 0

Esta opción es adecuada si los datos de nombre, apellidos, sexo, etc no se van a guardar en la tabla

Opción 2: manejar el AfterUpdate del cuadro combinado para traspasar los valores de las columnas a loc cuadros de texto
Me!txtNombre = Me!cboDNI.Column(1)
Me!txtApellidos =Me!cboDNI.Column(2) 
Me!txtSexo =Me!cboDNI.Column(3) 

Esta opción es adecuada si se requiere almacenar los datos en la tabla.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1276
Enlace directo a este mensaje Enviado: 20/Febrero/2021 a las 11:52
Otra posibilidad, siempre y cuando ese segundo (¿informe/formulario?) esté basado en otra tabla y no se quiera guardar los nombres, apellidos y sexo, es basar ese formulario en una consulta.

Por ejemplo, si tenemos una tabla e visitas con los campos DNI, fecha y hora de visita, podemos crear una nueva consulta y:

1. Agregar la tabla de visitas a la consulta
2. Añadir la tabla de pacientes a la consulta
3. Relacionar los DNI de las 2 tablas: todos los registros de visitas y los relacionados de pacientes
4. Seleccionar todos los campos de la tabla visitas que queramos ver, incluyendo el campo DNI
5. Seleccionar los campos nombre, apellidos y sexo de la tabla pacientes
6. Comprobar que la consulta hacer lo que queremos, y usarla como origen del formulario

Si quieres/necesitas guardar esta campos en la segunda tabla, tendrás que usar la segunda opción de Xavi.
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 97
Enlace directo a este mensaje Enviado: 28/Febrero/2021 a las 15:34
Muchísimas gracias a todos!
Arriba
damian_colomb Ver desplegable
Habitual
Habitual


Unido: 08/Febrero/2021
Localización: Argentina
Estado: Sin conexión
Puntos: 97
Enlace directo a este mensaje Enviado: 05/Marzo/2021 a las 03:43
Se puede cerrar este hilo
Drop here!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable