Access - Autocompletado de formulario

   
Vista:

Autocompletado de formulario

Publicado por Sam retornon@ymail.com (3 intervenciones) el 05/03/2014 11:09:43
Buenas, tengo una base de datos creada, la cual ya posee datos, ahora necesito crear otro formulario que se autocomplete con los datos previamente ingresados con solo seleccionar el nombre de la persona en el nuevo formulario, muchas gracias de antemano soy nuevo con access
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

Autocompletado de formulario

Publicado por Jose Gilberto (16 intervenciones) el 05/03/2014 17:27:35
Buen día, conozco dos soluciones a tu problemática, una utilizando la función Dlookup y la otra por medio de recordset con una consulta sql.

Bien explicare ambos para ver cual mas te convenga. Para ambos ejemplos utilizare:
1
2
3
4
Tabla: Datos Campos: Nombre, Edad, Ciudad.
Cuadro de texto: EdadTexto (Donde estará la edad de la persona).
Cuadro de texto: CiudadTexto (Mostrara la ciudad de la persona).
Cuadro combinado: selNombre (Donde se seleccionara el nombre de la persona para mostrar sus datos).
En el evento al cambiar del cuadro combinado colocaremos lo siguiente para mostrar la edad y la ciudad de la persona seleccionada en los cuadros de texto.

Metodo Dlookup.

1
2
Me.EdadTexto.Value = Dlookup("[Edad]","[Datos]","Nombre='" & Me.selNombre & "'")
Me.CiudadTexto.Value = Dlookup("[Ciudad]",[Datos],"Nombre='" & Me.selNombre & "'")

Sintaxis Dlookup.
1
Valor = Dlookup("[CampoABuscar]","[OrigendelosDatos"],"[Condicion]")

Metodo Recordset.

1
2
3
4
Dim rst As Recordset
set rst = Currentdb.OpenRecordset("SELECT * FROM Datos WHERE Nombre='" & Me.selNombre & "'")
Me.EdadTexto.Value=rst!Edad
Me.CiudadTexto.Value=rst!Ciudad

Explicación.
Creamos una variable de tipo Recordset (rst) y con set rst=currentdb.OpenRecordset le decimos que en la base de datos actual se abra el registro que corresponda con la consulta SQL dentro del paréntesis. En la consulta pedimos todos los registros (SELECT *) de la tabla Datos (FROM Datos) donde se cumpla la condición de que el campo Nombre sea igual al valor del cuadro combinado (WHERE Nombre="' & Me.selNombre & "'"
Luego igualamos cada resultado del campo en los cuadros de texto (rst!Edad).

Espero haber sido de ayuda, se me olvidaba comentar he leido que la solucion de Dlookup con una gran cantidad de registros hace las consultas mas lento y que se recomienda utilizar consultas SQL.
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

Autocompletado de formulario

Publicado por Sam retornon@ymail.com (3 intervenciones) el 06/03/2014 11:13:02
Muchas gracias por la respuesta voy a tratar de ejecutar lo que me dices y estaré subiendo una actualización de como me fue.
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

Autocompletado de formulario

Publicado por jose (741 intervenciones) el 05/03/2014 18:31:34
otra solucion
crea un cuadro combinado con la tabla de las personas
incluye en la consulta
numero persona
nombre
domicilio
provncia
etc

si lo que quieres es que se vea la primera y segunda columna pon
por ejemplo en tamaño total 6
en tamaño de cada campo 1;5;0;0;0;


en el evento "despues de actualizar" after update del cuadro combionado
aqui es donde se rellenan los campos de del formulario

campo numpersona del formulario = nombrecuadrocombinado.column(0).
campo nombrepersona del formulario = nombrecuadrocombinado.column(1)
campo domicilio del formulario = nombrecuadrocombinado.column(2)

y así sucesivamente

el orden es muy importante para establecer el indice



jose manuel desde El Astillero
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

Autocompletado de formulario

Publicado por Sam retornon@ymail.com (3 intervenciones) el 06/03/2014 11:13:37
Muchas gracias por la respuesta voy a tratar de ejecutar lo que me dices y estaré subiendo una actualización de como me fue.
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