Cuadro de lista vs subformulario Access

Es la primera vez que pregunto en este foro, hasta ahora solo lo consultaba pero estoy atascado. De antemano, no estoy muy puesto en VBA y mi pregunta es la siguiente:

Estoy haciendo una base de datos para el control de facturas de Access con varias tablas, pero ahora solo me interesan dos con sus respectivos campos:

TBL_PROVEEDORES (nom_proveedor, nif_proveedor, y dirección_proveedor) (hay más pero con esos bastaría por ahora).

TBL_CONTACTOS (id_contacto, nom_contacto, direccion_contacto, telefono_contacto)

Hasta ahí todo correcto pero mi problema es el siguiente:

Tengo un formulario (FRM_PROVEEDORES) con los campos del proveedor y dentro del mismo tengo un subformulario (SUBFRM_CONTACTOS) con los campos del contacto en el cual muestro los contactos de cada proveedor (todo funciona bien)

Pero quisiera ver la posibilidad de sustituir el subformulario por un cuadro de lista con sus respectivas columnas. (Solo por estética, me lo han pedido así) y no sé cómo hacerlo. Es decir, los datos que ahora muestro en el subformulario, mostrarlos en un cuadro de lista sin que exista el subformulario

Por favor ayuda,

Gracias por la labor que estáis haciendo ya que dais vida a garrulos como yo.

1 Respuesta

Respuesta
1

En principio no veo ningún campo que relacione una tabla con otra pero vamos a suponer que en la tabla Proveedores tienes el campo Idproveedor y tambien en la tabla Contactos. En el formulario Proveedores puedes poner un cuadro de lista( al que en sus propiedades-otras-nombre puedes ponerle Contactos y en las mismas, en numero de columnas le pones las que necesites, en este caso 2 y en el evento Al activar el registro del formulario Proveedores pones

Contactos.RowSource = "select nombrecontacto,direccion from from contactos  where idproveedor=" & me.idproveedor & ""

He supuesto que el campo que las relaciona es numérico, si fuera texto sería

idproveedor='" & me.idproveedor & "'"

Gracias por tu rápida respuesta pero no me funciona, seguro que estoy haciendo algo mal.

Te envio captura de lo que tengo hecho a ver si me lo puedes corregir porfa.

En la captura figuran (a modo de comparacion) el subformulario y el cuadro de lista, en el subformulario aparecen bien los contactos y en el cuadro de lista no aparece nada.

La consulta que he puesto es:

Private Sub Form_Current()

ListaContactos.RowSource = "select NombreContacto, ApellidosContacto, TelefonoContacto  from form from tblContactos where IdProveedor=" & Me.IdProveedor & ""

End Sub

En el cuadro de lista le tengo asignada 3 colummnas No sé si habrá que modificar alguna propiedad del cuadro de lista

Me he dado cuenta que he puesto un error en el codigo que te he enviado: el segundo form es un from

Sigue sin funcionar

Hace días que Todoexpertos no notifica las "repreguntas", por lo que no sabía nada. El error no es tuyo, es mío al escribir, puse dos veces from Lo correcto es

TelefonoContacto  from tblContactos where IdProveedor=" & Me.IdProveedor & ""

¡Gracias! Me has ayudado mucho, ahora si funciona, dejo el código basado en la imagen de arriba por si a alguien le sirve.

Private Sub Form_Current()
ListaContactos.RowSource = "select NombreContacto, ApellidosContacto, TelefonoContacto from tblContactos where IdProveedorContacto=" & Me.IdProveedor & ""
End Sub

Otra cosilla, ¿habría alguna forma de formatear el encabezado del cuadro de lista?

Honestamente, no sé que quieres decir con "formatear" el encabezado del cuadro de lista.

Gracias Icue otra vez por contestar.

Lo que quiero hacer es poner el encabezado con otra letra, mas grande y en negrita que el resto de la lista y en los registros de la lista agregar espacios arriba y abajo para separar un poco las filas que quedan muy apelotonadas.

Lo de el encabezado lo puedo solucionar con etiquetas pero agregar los espacios arriba y abajo en las filas, no lo consigo desde las propiedades del cuadro de lista

Es el problema que tienen los controles ActiveX, que ya vienen diseñados y que permiten algunas modificaciones. En este caso, que yo sepa no puedes aumentar la altura de "las casillas". No digo que no se pueda, solo que yo no lo sé. Si podrías hacerlo con un formulario tabular, porque el que lo diseña eres tú.

¡Gracias!, por tu ayuda, tienes razón, estoy mirando otras opciones como la del formulario tabular que comentas ya que es bastante más flexible.

Repito, muchas gracias por tu ayuda y yo creo que el tema queda cerrado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas