Cómo Desactivar Botón de Comando

Tengo un formulario donde se aplican distintos filtros para distintos campos. Para desactivarlos coloqué un Botón de Comando que ejecuta la macro desactivar todos los filtros.

El botón funciona bien si hay un filtro activado pero si no lo hay, cuando se lo presiona aparece un mensaje de error (2046) detener todas las macros.

Lo que quisiera (si se puede) es que al no haber filtros apareciera atenuado y si se presiona no ocurriera nada (que no aparezca ningún mensaje de error).

1 respuesta

Respuesta
2

Tabaré: A ciegas será muy difícil acertar, porque se trata de sondear el Filtro, y si es ""

O sea no hay nada en el, que salga del procedimiento sin o con mensaje.

Si quieres poner tu código, vemos que se puede hacer. Mis saludos >> Jacinto

Hola Jacinto, pensaba no molestarte más e hice la pregunta abierta, pero sos un fenómeno y al toque contestaste.

Mirá, cambié la macro y puse este procedimiento en el evento al hacer click

Private Sub CdoQuitarFiltros_Click()
On Error GoTo Err_CdoQuitarFiltros_Click

DoCmd.RunCommand acCmdRemoveAllFilters

Exit_CdoQuitarFiltros_Click:
Exit Sub

Err_CdoQuitarFiltros_Click:
MsgBox "No hay Filtros Activos para Quitar"
Resume Exit_CdoQuitarFiltros_Click

End Sub

Me aparece un mensaje pero es más "estético" que el de error de macro y con un click lo desaparezco. 

Los filtros son dos consultas de selección de: buscar si  un expediente si tiene agregados, o de si busco otro expediente para ver si está o no. 

En estos casos el formulario principal queda "congelado" en ese expediente por eso le puse el botón para quitarlos. 

Lo que me gustaría es que si no está filtrado el formulario, al hacer click no pasara nada, como si estuviera deshabilitado.

Un abrazo. Gracias

Tabaré: Una buena solución.

En mi opinión que no necesariamente ha de ser correcta, los "errores" deben prevenirse y evitarlas siempre que se pueda.

En éste caso lo que te comentaba es si puedes poner el código completo de los filtros, justo con esa intención de intentar evitarlo y a lo sumo que envíe un mensaje.

Ya me contarás. Mis saludos >> Jacinto

Uno de los filtros es en la condición Where es:

[Expedientes]![Carátula] & [Expedientes]![Número] & [Expedientes]![Año]=[Formularios]![ConsAgregados]![Texto0] & [Formularios]![ConsAgregados]![Texto2] & [Formularios]![ConsAgregados]![Texto4]

Esto está en el Cdo Buscar de un formulario ConsAgregados donde coloco el número del expediente a buscar: Texto0 es Carátula, Texto2 es Número y Texto3 es Año. Esto me filtra los expedientes para averiguar el Agregado (sería el campo 4 en la cadena Carátula, Número, Año, Agregado.

El otro filtro es similar pero integra el campo Agregado y la condición Where es:

[Expedientes]![TextoExp]=[Formularios]![Buscar Expediente]![TxtCarátula] & [Formularios]![Buscar Expediente]![TxtNúmero] & [Formularios]![Buscar Expediente]![TxtAño] & [Formularios]![Buscar Expediente]![TxtAlcance].

Esto está en el Cdo Buscar  de un formulario Buscar Expedientes

A TextoExp que sale de una consulta de actualización le agregué el campo Agregados: quedó así 5100+256489+16+10 = 51002564891610 y filtro para saber si ese expediente exactamente ya fue ingresado (una de las primeras preguntas). Como el tema del agregado me lo dijeron después hice esas modificaciones. 

Nunca están los dos filtros activados, ya que hago una búsqueda u otra. Pero como te comenté, el formulario principal queda congelado en ese Expediente. 

Te mareé un poco o te sirvió?

Un abrazo y gracias

Disculpá, te aclaro que el botón buscar que te comenté ejecuta una macro que es Ejecutar Macro la cual tiene la condición Where.

Botón Consultar Agregados del Formulario principal ----> se abre Formulario ConsAgregados donde se ingresan los datos del Expediente y con el botón Buscar se hace la consulta que se lista en otro formulario (no me gusta tipo tabla) el Expediente con todos sus agregados.

Botón Buscar Otro Expediente del Formulario principal ----> se abre el Formulario Buscar Expediente donde se ingresan los datos del Expediente (aquí con el campo Agregado) y con el botón Buscar se hace la otra consulta que se lista en otro formulario ese Expediente en particular.

Gracias

Tabaré: Necesito digerirlo y como el tema momentáneamente lo tienes resuelto, le echaré una mirada y te contesto en un par de días porque ando un poco liado.

Lo que observo es que se aparta un poco del ejemplo que te facilité, pero te comento.

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas