¿Qué estoy haciendo mal al filtrar?

En una tabla de acces 2013, tengo un botón en un formulario de tabla que llama al siguiente código:

Private Sub Filtrar_Click()
On Error GoTo Err_Filtrar_Click
Screen.PreviousControl.SetFocus
RunCommand acCmdFilterBySelection
Exit_Filtrar_Click:
Exit Sub

Err_Filtrar_Click:
MsgBox Err.Description
Resume Exit_Filtrar_Click
End Sub

Con esto me filtra por el campo que tengo seleccionado, pero lo que yo quiero es que me filtre por el texto que tengo seleccionado.

Si tengo un campo con el texto Amaneceres blancos, si tengo seleccionado con el ratón la palabra blancos, me filtra todos los registros que contienen "Amaneceres blancos", y lo que quiero es que me filtre los registros que contengan "blancos"

¿Qué estoy haciendo mal en el código de filtrado que tengo?

1 respuesta

Respuesta
2

Supongamos que en el formulario tienes un cuadro de texto NombreCompañia y quieres que te busque todos aquellos registros que tengan en el campo Nombrecompañia la cadena de texto que hayas elegido con el cursor. En el evento Al bajar una tecla del cuadro de texto NombreCompañia crea un procedimiento de evento y pon

Form.RecordSource = "select * from clientes where nombrecompañia Like '*" & Me.NombreCompañia.SelText & "*'"

Osea, que si con el cursor seleccionas Blanco, el origen de registros del formulario serán aquellos de la tabla Clientes en que el campo NombreCompañia tenga la cadena esa. Por ejemplo. Amanecer blanco, blanco perla, Blancolor, etc

Gracias, pero no me sirve, porque quiero que busque en todos los campos, y donde quiero que seleccione el texto es en cualquier dato de cualquier campo.

Lo que quiero es que haga lo mismo que cuando tienes abierta una tabla en acces 2013, seleccionas una palabra en cualquier campo y le das al botón Selección del menú de Acces, y te salen las opciones contiene, no contiene, etc. En mi caso sería la opción contiene... pero me valdría que saliera ese menú. De hecho, el formulario en el que quiero poner el botón es una tabla personalizada.

He leído por ahí que se podía hacer con una macro, pero no sé nada sobre macros.

A lo mejor no se puede, en cualquier caso, muchas gracias.

Crea un botón de comando y en sus propiedades-eventos-al hacer clic ponle( suponiendo que el botón se llame comando20

On Error GoTo Comando20_Click_Err

DoCmd. GoToControl Screen. PreviousControl. Name
    DoCmd. RunCommand acCmdFind

Comando20_Click_Exit:
    Exit Sub

Comando20_Click_Err:
    MsgBox Error$
    Resume Comando20_Click_Exit

Así, cuando selecciones una cadena de texto y pulses el botón te hará lo mismo que dices.

Gracias, pero eso lo que hace es sacarme el cuadro de diálogo de buscar, por lo que tampoco me sirve.

Lo siento, no se me ocurre otra cosa. Le he dado vueltas, pero no se me ocurre nada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas