Access - Ayuda con buscar en BD

   
Vista:

Ayuda con buscar en BD

Publicado por arturogg (6 intervenciones) el 02/04/2016 05:06:18
Buenas, quisiera ver si me pueden ayudar con este tipo de búsqueda.

Estoy haciendo una BD, donde aparece un cuadro de texto pidiendo el nombre de una persona, el nombre introducido se busca en una tabla llamada clientes y regresa un valor booleano si existe o no.

Mi pregunta es: ¿Cómo puedo hacer para que desde el nombre introducido en un cuadro de texto o formulario, haga la búsqueda en una tabla para ver si existe el nombre, y si existe abra otro formulario donde me aparezca no solo el nombre, sino la edad y la dirección de la persona que se busca?

este es el código que uso en un modulo para buscar el nombre:

1
2
3
4
5
6
7
8
9
10
11
Set miconexion = CurrentProject.Connection
instruccion = "SELECT nombre from PACIENTES"
mirecordset.Open instruccion, miconexion
 
While mirecordset.EOF = False
    If mirecordset!Nombre = elusuario Then
    existe_usuario = True
    End If
  mirecordset.MoveNext
 
Wend


Y este lo uso para que me abra el otro formulario en caso que se encuentre:

1
2
3
If comprueba_usuario(c_usuario.Value) = True Then
MsgBox "el nombre es" & " " & (c_usuario)
DoCmd.OpenForm "Historial"


Lo que me falta es en caso de existir el usuario, que en los cuadros de texto del formulario que se abre, muestre los datos de la persona buscada de la tabla pacientes, como nombre edad y domicilio.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con buscar en BD

Publicado por Enrique Heliodoro (1663 intervenciones) el 02/04/2016 17:48:06
Yo para conocer si un dato existe en una tabla, lo simplifico mucho (el código expuesto en el primer mensaje es un código inacabado, pues no libera recursos), en su lugar este es mas que suficiente y es un 'código limpio' (como el de todas las funciones de dominio):

IF DCount("*", "PACIENTES", "Nombre = '" & Pacientes & "'" Then ........

DCount devolverá un cero si no lo encuentra (Cero = FALSE) o un numero ordinal si lo localiza (sean una o cien veces, es lo mismo: o esta o no esta y cualquier valor diferente de cero = TRUE)

¿Qué se necesita abrir un formulario con ese 'paciente'? ...

DoCmd.OpenForm "nombre del formulario", , , "Nombre = '" & Pacientes & "'"

Y ya puestos, todo en la misma línea:
IF DCount("*", "PACIENTES", "Nombre = '" & Pacientes & "'" Then DoCmd.OpenForm "Historial", , , "Nombre = '" & Pacientes & "'"

Por cierto, ese formulario 'mostrara' los datos que el diseñador del formulario quiera (y que por supuesto existan en el origen de datos, que Access no debería inventar NADA)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar