Mostrar datos de un listbox en un mismo formulario

Haber si alguien me puede ayudar ya que soy principiante, tengo un tabla con los campos correspondientes con el nombre DERAROLLAR y luego tengo un formulario con el MISMO NOMBRE.

Dentro del formulario tengo un listbox ( o cuadro de lista ), quiero que según la selección del cuadro de lista me muestre todos los valores en ese mismo formulario . Ahora solo veo el cuadro de lista con los cuatros campos (id, dirección, nº, pta) y en el formulario tengo (a parte de los mismos que el cuadro de lista hay otros campos como nombre, teléfono, etc)

La idea es que según voy pasando por el cuadro de lista vea los datos complementados en el formulario

2 respuestas

Respuesta
1

Entiendo, por lo que dices, que el formulario debe ser independiente, ya que si depende de la tabla Desarrollar no he comprendido para que sirve ese cuadro de lista, que además ocupa mucho. Mira si tengo una tabla Clientes

Ahora construyo un formulario, como he dicho, independiente, con un cuadro de lista, que tiene sólo dos columnas IdCliente y NombreCliente, con la primera como columna dependiente y un ancho de columnas 0cm y 6 cm de forma que sólo me muestre el nombre, pero el valor que lo define es el Idcliente. Y además uno cuadro de texto, también independientes llamados NombreContacto, Ciudad y Pais

Cuando selecciono un cliente

Acto seguido selecciono otro

Es decir, a medida que voy seleccionando un cliente a la derecha me muestra sus datos. El cuadro de lista se llama Lista6, y en sus propiedades-Eventos-Después de actualizar, con el Generador(el botón de tres puntos...) creo un procedimiento de evento y lo dejo como

Private Sub Lista6_AfterUpdate()
NombreContacto = DLookup("nombrecontacto", "clientes", "idcliente=" & Me.Lista6 & "")
Ciudad = DLookup("ciudad", "clientes", "idcliente=" & Me.Lista6 & "")
Pais = DLookup("pais", "clientes", "idcliente=" & Me.Lista6 & "")
End Sub

Es decir después de elegir un valor búscame en la tabla clientes, en el registro con el idcliente(columna dependiente) igual al que acabo de elegir en la lista 6 y mira el nombre de contacto y me lo pones en el cuadro de texto del mismo nombre. Lo mismo con los demás

En caso de que el formulario fuera dependiente de la tabla, podrías poner un cuadro combinado que ocupa mucho menos y que al elegir un nombre, o bien te buscara el registro correspondiente o bien que el formulario sólo te mostrara el registro de ese cliente.

¡Gracias! MU

Muchas gracias de verdad , ya que llevo muchos dias con esto y voy muy lento ya que voy cogiendo lo que voy viendo. Esto era lo que tenia en mente sobre todo para ir viendo lo que tengo de una forma muy visual a la vez que voy trabajando. Llevo días mirando como meter un filtro con una casilla de verificación cual es la forma mas correcta . Tengo un campo que indica contactado con los valores verdaderos o falso. Que solo muestre cuando le doy a este botón o lo que sea que me muestre los campor falso que son lo que me faltan por contactar.

No te puedo decir nada, porque con lo que se vé en la imagen es difícil discernir algo. Pero, me surge una pregunta, ¿para que tener que rellenar cuadros de texto, si los valores ya los tienes en el mismo formulario que has usado para pasar datos a las tablas. Por ejemplo, tengo una tabla Clientes que se "llenó" con lo que rellené en el formulario Clientes

Verás que tiene 91 registros. Si en el formulario Clientes le pongo un buscador, que en este caso es un combinado donde elijo el nombre de la compañía, porque siempre es más fácil acordarse de un nombre que de un Id, o DNI, o lo que sea.

Ahora voy a elegir un cliente

En el momento que lo elijo

Sólo me muestra un único registro, el de ese cliente

Y si el formulario fuera continuo, exactamente igual y el código del combinado no puede ser más simple.

Private Sub Elegir_AfterUpdate()
Me.RecordSource = "select * from clientes where nombrecompañia='" & Me.Elegir & "'"
End Sub

De antemano muchas gracias por todo. 

e explico el por que lo quiero asi que no se si esta mal planteado , la idea de tener un formulario con este planteamiento o por lo menos lo que yo pienso.... que no se a si sera el mas lógico . Es que visualmente tengo los últimos con los que inserte y voy trabajando , a la vez si le meto el filtro que te comente de si contacte con ellos o no mostrando solo los que tengan esta opcion.

Es decir yo ahora te el cuadro de lista que me muestra todos lo valores de la tabla según voy viendo en el formulario.

Ahora si le pongo un botón o algo parecido , que solo me muestre los que el campo contactado que lo tengo como verdadero o falso, me muestre por ejemplo los que tenga el campo ese verdadero. y si no que me muestre todos los registros.

No se si me explicado bien 

Gracias otra vez

En la imagen que pusiste no veo el campo Contactado, pero da igual, no hace falta. Si quieres poner un botón en sus propiedades-eventos-Al hacer clic, con el generador crea un procedimiento de evento y entre Private Sub y End Sub pon

me.recordsource="select * from Desarrollar where contactado=-1"

en VB yes, True equivalen a -1 y No, False equivalen a 0

Te agradezco mucho tu ayuda te comento , por que se ve que hay algo mal ya que me da fallos o por lo menos como yo lo estoy haciendo.

1º creo que esta de sincronizado el cuadro de lista , con pruebas me doy cuenta de lo siguiente.

hago clik en el cuadro de lista me muestra los datos todos menos el id , que intentando escribo como los otros id= DLookup("id", "desarrollar", "id=" & Me.Lista71 & ""). pero no me da fallo cuando lo escribo , por lo siguiente cuando escribo en el formulario para modificar y guardar.

2 con el filtro en una ocasión le puse y parecía que funcionaba pero ahora no. 

3 que no se si esto es muy complicado pero no se pueden actualizar los datos en el cuadro lista tanto como por filtro como cuando se elimina. 

MUCHAS GRACIAS DE VERDAD POR TU TIEMPO

Primero. ¿Has comprobado que el cuadro donde quieres que te aparezca se llama Id?. Mira en Propiedades-Otras-Nombre

Segundo. ¿Has comprobado, si la columna dependiente del cuadro de lista es la del Id?. Una cosa es la columna que muestra y otra la que "le da valor"

La instrucción está bien redactada

Primero, vamos con lo de Contactado. Si tengo la tabla Clientes

En el formulario Clientes, que no tendría que ser en él, pero lo aprovecho. He puesto un botón que cuando lo pulso, sólo me muestra aquellos clientes que tienen "marcado" el campo Contactado

Y la instrucción es la que te dije

Me.recordsource="select * from clientes where contactado=-1"

Vamos ahora con el cuadro de lista. Si tengo el formulario, donde hay un cuadro de lista, que después de "construir" con el generador( usar los campos Idcliente y Nombrecliente de la tabla Clientes me queda como

SELECT Clientes.IdCliente, Clientes.NombreCliente FROM Clientes GROUP BY Clientes.IdCliente, Clientes.NombreCliente;

Al cuadro de lista en la solapa Formato le digo que tenga dos columnas pero que el ancho de ellas sea 0;5 de forma que aunque el cuadro de lista dependa del campo Idcliente no lo muestre y unos cuadros de texto, que por comodidad se llaman igual que los campos aunque no sería necesario.

Cuando lo abro

Voy a seleccionar al amigo Antonio Moreno

acto seguido, tal como está selecciono Bottom...

Y como te dije el código es simple

Private Sub Lista12_AfterUpdate()
IdCliente = DLookup("Idcliente", "clientes", "idcliente=" & Me.Lista12 & "")
Nombrecliente = DLookup("nombrecliente", "clientes", "idcliente=" & Me.Lista12 & "")
NombreContacto = DLookup("nombrecontacto", "clientes", "idcliente=" & Me.Lista12 & "")
Pais = DLookup("pais", "clientes", "idcliente=" & Me.Lista12 & "")
Ciudad = DLookup("ciudad", "clientes", "idcliente=" & Me.Lista12 & "")
End Sub

Por un lado lo del filtro lo solucione  , aunque no me muestra los datos en cuadro. Pero me restringe para poder ver de uno en uno desde los comando de abajo ya que puedo tener entre 50 0 60 iguales con esa condición por eso también el cuadro , para localizarlo antes.

por otro lado hay algo que estoy haciendo mal y no encuentro la solucion lo desmomenta varias veces desde nuevo y eso es lo que me sale a la hora de ver en el cuadro listado.

se ve poco pero a la hora de guardar o modificar empiezan los fallos y creo que to va por el id.

La idea del cuadro es sobre todo no solo para ver si no poder trabajar a la hora de modificar ,crear , eliminar o filtrar.

Muchas gracias

Esto se está convirtiendo en una correspondencia y el objeto de esta página es que resolvamos preguntas concretas y creo que ya es momento de parar. Cuando te señala en amarillo una línea es que la instrucción que tienes puesta no es correcta y puede ser por lo que ya te he dicho. O bien los campos no se llaman así, o bien en el cuadro de lista, el valor de su columna dependiente no es numérico sino texto y en ese caso se debe poner

.............., "IdDesarrollar='" & me.lista0 & "'")

Respuesta
1

Envíeme un mensaje a [email protected] y con gusto le suministro un ejemplo. Favor incluir en el asunto el encabezado de la pregunta.

Revise su correo le envíe un ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas