Mostrar datos de un formulario por un cuador de lista

Tengo un formulario llamado contrato_prestamos3 en el que tengo varios campos y por el que quiero filtrar es por nombre_prestamista, en otras ocasione he usado el mismo codigo y funciona

He puesto en el código después de actualizar el siguiente código

Private Sub Cuadro_combinado47_AfterUpdate()
Me.FilterOn = False
Me.Filter = "nombre_prestamista =' " & Me.nombre_prestamista & " ´ '"
Me.FilterOn = True

End Sub

la estructura del formulario es esta

La cosa es que no me filtra nada y cuando lo hace el nombre de prestamista del cuadro de lista no coincide con lo filtrado

3 respuestas

Respuesta
2

Vamos a suponer que el combinado sólo tiene una columna dependiente y que el formulario depende de la tabla Prestamos. ¿Has probado a poner simplemente

me.recordsource="select * from Prestamos where nombreprestamista='" & me.nombredelcombo & "'"

Es decir, que el origen de registros del formulario sean aquellos registros de la tabla Prestamos en que el nombreprestamista sea igual al que acabas de elegir en el combinado.

En caso de que el combinado tuviera más columnas y nombreprestamista no fuera la columna dependiente tendrías que usar( suponiendo que fuera la segunda columna

......where nombreprestamista='" & me.nombrecombo.column(1)

En VB la primera columna de un combo es 0

Por ejemplo, tengo el formulario Pedidos, al que le añado un combinado elegirpais

Cuando selecciono uno, en este caso España

Sólo me muestra los registros que cumplen esa condición en Pais. Y el código es el que te dije

Private Sub ElegirPais_AfterUpdate()
Me.RecordSource = "select * from Pedidos where pais='" & Me.ElegirPais & "'"
End Sub
Respuesta
1

La comilla final que indica que el dato es de tipo texto no es la correcta, espera la comilla simple y tiene otra (posiblemente al copiarla de otro entorno, Word es un poco revoltoso)

Respuesta
1

El problema está en que no hace referencia al cuadro de lista, sino al campo del "nombre_prestamista" del detalle del formulario. Pruebe con este código

Private Sub Cuadro_combinado47_AfterUpdate()
    Me.FilterOn = False
    Me.Filter = "nombre_prestamista ='" & Me.ComboBox & "'"
    Me.FilterOn = True
End Sub

Remplace ComboBox por el nombre que tenga su cuadro combinado

Puede que deba hacer referencia a determinada columna, algo como

Me. ComboBox. Column(1) si la columna dependiente es por ejemplo un ID.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas