Eliminar filtro de formulario y mantener en pantalla el registro filtrado

Tengo dos formularios (frmClientes y frmContactos) con sus respectivas tablas, las cuales están relacionadas 1 a varios por el campo “NomClientes” (tipo texto) del formulario frmClientes.

En el formulario frmContactos, hago doble click en el campo “NomClientes” y me abre el frmClientes en el registro correspondiente, filtrado.

En el frmClientes tengo un botón, “btnEliminarFiltro”, para eliminar el filtro y que me permita navegar por todos los registros del frmClientes.

Con este código:

Private Sub btnEliminarFiltro _Click()

    Me.FilterOn = False

End sub

Como hago para que al pulsar el btnEliminarFiltro me elimine el filtro del frmClientes y se quede activo el registro que se ha filtrado

1 Respuesta

Respuesta
2

Basta con que en el botón del formulario clientes pongas

form.recordsource="select * from clientes"

Gracias por tu rápida respuesta pero no se mantiene en el registro filtrado y desordena todos los registros del formulario cliente

Si tengo un formulario( da igual como está construido, es simplemente para abrir otro)

Y elijo un nombre de compañía, en este caso Comercio Mineiro, se abre el formulario Clientes en ese cliente

Como puedes ver sólo me muestra el registro de ese cliente, y si pulso el botón Comando9

Como puedes ver me muestra todos los registros para que pueda moverme por ellos.

Gracias otra vez,

Tu me muestras un formulario tabular en el que puedes recorrer todos los registros

yo tengo un formulario único que cuando lo filtro, me aparece solo el cliente filtrado como activo, hasta ahí es correcto, pero cuando le quito el filtro con el btnEliminarFiltro, se quita el filtro del formulario y no me mantiene el cliente filtrado en pantalla sino que por defecto, se desplaza al primer registro, yo consigo que se desplace al primero, o al siguiente o al anterior o al último pero necesito que no se desplace a ningún otro registro osea que mantenga el registro que se filtró como activo y a partir de ahí poderme desplazar por los demás registros

No se si ahora se entiende mejor

Da exactamente igual que sea único o continuo. Supongamos que seguimos con lo de arriba, y que la tabla clientes tiene un campo IdCliente (autonumerico, da igual otro cualquiera siempre que identifique a un único registro y que sea ascendente.

En el botón que decía pon

Dim s As Integer
s = DCount("*", "clientes", "idcliente<=" & Me.Idcliente & "")
Form.RecordSource = "select * from clientes"
DoCmd.GoToRecord , , acGoTo, "" & s & ""

En el formulario pulso el botón donde le digo que me abra el formulario Clientes que sean de Madrid

Me abre el formulario y verás que sólo hay dos y me voy al registro 2

Ahora pulso el botón

O sea, ahora están todos los clientes pero se mantiene en el registro de Romero y Tomillo.

Muchísimas gracias, es justo lo que quería y funciona ok. Por mi parte el tema queda cerrado.

Pero te hago otra pregunta a ver si me puedes ayudar.

¿Por qué un cuadro de texto para poner comentarios o notas es decir, que admite varias líneas de texto, es independiente y no está relacionado con ningún campo ni tabla, ni consulta, al recibir el foco con la tecla “entrar” desde otro cuadro de texto, salta el foco siempre a la segunda línea dejando la primera línea en blanco?.

Solo me ocurre cuando cuando en el cuadro de texto justamente superior le pulso la tecla "Enter" y el cuadro de texto para comentarios recibe el foco, deja la primera línea en blanco saltando el cursor a la segunda línea. He comprobado que solo ocurre cuando el cuadro de texto multilínea que recibe el foco es independiente

¿Cómo podría solucionarlo?

Te adjunto imagen

Se juntan dos cosas. Por un lado Access por defecto tiene activada esa casilla(Archivo-Opciones-Configuración de Cliente)

En principio esto es bueno, pero cuando en el tamaño de un campo de una tabla pones mas de 60 automáticamente al construir un formulario, en el cuadro de texto en sus Propiedades-Otras-Comportamiento de la tecla Entrar le pone nueva línea en el campo. Entonces cuando desde un control anterior pulses enter, en el nuevo se irá al final de la linea nueva. Si te tuviera que aconsejar yo siempre quito lo de Nueva línea en campo. De siempre uso la tecla Enter como tabulador, entonces imagínate que en un cuadro de texto de esos, escribes, por ejemplo, nada más que En un rincón de la Mancha y pulsas Enter para que se vaya al siguiente cuadro de texto. Al tener puesto lo de nueva línea en campo, se queda en blanco, porque la segunda línea está en blanco y no sabes si es que se borró, despareció o lo que sea.

¡Gracias! Pero no me funciona porque si le cambio "El comportamiento a la tecla entrar" como predeterminado, solo me admite una línea y normalmente esos campos pueden tener varias

Los cuadros de texto tienen las propiedades de autoextensible y autocomprimible, es decir que se adapten a lo que se escribe en ellos. Por tanto se puede usar un campo tamaño, por ejemplo, de 200 dígitos pero hacer el cuadro de texto de 5 cm, que a medida que se va escribiendo, el cuadro se va "estirando" hacia abajo y viceversa.

Por otro lado si estás escribiendo algo en un cuadro de texto "normal" y quieres que se vaya a la siguiente línea basta con pulsar Control + Enter y el siguiente dígito estará en la línea de abajo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas