Desactivar botón Access 2007

He creado un botón en un formulario para activar el menú de filtro. El problema que tengo es que si está enfocado un botón y no un cuadro de texto, me aparece un mensaje de error porque no puede realizar el filtro.

El código que tengo puesto en el botón de filtro es el siguiente:

Set ctrl = Screen.PreviousControl
Ctrl. SetFocus
DoCmd. RunCommand acCmdFilterMenu

Así que lo que me gustaría es ponerle una instrucción para que, en el caso que no esté seleccionado un cuadro de texto, el botón FILTRO aparezca desactivado, y cuando seleccione un cuadro de texto se active. Básicamente lo que pretendo es que funcione igual que el botón FILTRO de la cinta de opciones INICIO de Access 2007.

1 Respuesta

Respuesta
1

Personalmente opino que el sistema que estás proponiendo no es de lo más óptimo, porque, además de tener que meter código en todos los controles, tu botón parecería una bombilla de feria.

Te propongo que metas un simple control de errores en el código que ya tienes. Te pongo dos ejemplos: con el primero, si no se puede ejecutar el filtro, pues no hace nada; el segundo te lanza una advertencia. Elige el que más te guste.

.- Código 1

...

Private Sub...

On Error goto sol_err

Set ctrl = Screen.PreviousControl
Ctrl. SetFocus
DoCmd. RunCommand acCmdFilterMenu

sol_err:

Exit sub

End Sub

...

.- Código 2

...

Private Sub...
On Error goto sol_err
Set ctrl = Screen.PreviousControl
ctrl.SetFocus
DoCmd.RunCommand acCmdFilterMenu

Salida:

Exit Sub

sol_err:

msgbox "No se puede aplicar el filtro ahora"

Resume Salida

End Sub

...

Ya me dirás qué tal.

Como solución me viene perfecta. Únicamente proponía lo de desactivar el botón como una opción, las que tú das por supuesto que también me valen.

Pero aún me sigue dando un fallo, en concreto me sale una ventana con el error 2046, en el que me dice que la acción o comando "MenúdeFiltro" no está disponible ahora.

A ver si me puedes echar una mano.

Gracias

Se me olvidaba comentarte que lo el código lo he puesto en el evento "Al ocurrir un error" del formulario. No sé si no es ahí donde tengo que ubicarlo.

Después de escribirte lo he probado poniendo el código en el botón y funciona perfectamente.

Muchas gracias por todo

El código lo deberías poner en el evento "Al hacer click" del botón.

Quita el código del evento de formulario, que no está bien.

Pruébalo y dime cosas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas