Filtro en formulario basado en una consulta

Tengo una formulario con subformulario, en el subformulario tengo una columna con casilla para verificación, en el cual marco cuando quiero descativar un producto.

Necesito poner un botón en el formulario que me permite filtrar entre activos y desactivados, quiere decir quiero activar el filtro y desactivarlo,

He probado varios formas pero no lo puedo no entiendo mucho de código visual

1 respuesta

Respuesta
2

Bruce: En un Grupo de Opciones con tres posiciones.

En el Evento AfterUpdate.

Dim FiltroCheck As String

If Me.NombreGrupoOpciones = 1' para los marcados

FiltroCheck = “[Nombre de tu CheckBox]” = -1”

Me.[Nombrede TuSubformulario].Form.Filter = FiltroCheck
Me.[Nombrede TuSubformulario].Form.FilterOn = True

ElseIf  Me.NombreGrupoOpciones = 2 ' Para los no marcados

FiltroCheck = “[Nombre de tu CheckBox]” = 0”

Me.[Nombrede TuSubformulario].Form.Filter = FiltroCheck
Me.[Nombrede TuSubformulario].Form.FilterOn = True

Else 'Para todos

FiltroCheck = “[Nombre de tu CheckBox]” = 0”

Me.[Nombrede TuSubformulario].Form.FilterOn = False

End If

Lo estoy escribiendo sobre la marcha y no lo he probado, si tienes dificultades me lo comentas. Saludos >> Jacinto

Bruce: La verdad es que he cometido un error de ligereza al escribir el código.

En compensación te dejo éste enlace que tiene un Ejemplo que se ajusta a lo que comentas y alguna cosa más.

http://www.mediafire.com/download/q7uhwxb0zw8wukj/EnvInformesFiltrados.rar 

Mis disculpas y un saludo >> Jacinto

He probado con el ejemplo pero como no entiendo mucho de códigos siempre me sale error al momento de ejecutarlo, te subo la base de datos que estoy usando al Dropbox, esa base de datos he escrito yo para mi uso en el trabajo, me aligera mucho mi deber pero aun muchas cosas que se pueden mejorar pero poco a poco, te comparto el link a ver si me puedes decir que hago mal. 

https://www.dropbox.com/s/7rxbyqaonvb0ebg/applus-database_02.accdb?dl=0 

saludos

Bruce: Solo he mirado la parte que hace referencia al Grupo de Opciones.

Sustituye el Código que tienes por éste otro:

Private Sub GrpOpc01_AfterUpdate()
Dim FiltroCheck As String
If Me.GrpOpc01.Value = 1 Then
FiltroCheck = "[Desactivar Activo] = -1"
Me![Modelo Subformulario].Form.Filter = FiltroCheck
Me![Modelo Subformulario].Form.FilterOn = True
ElseIf Me.GrpOpc01.Value = 2 Then
FiltroCheck = "[Desactivar Activo] = 0"
Me![Modelo Subformulario].Form.Filter = FiltroCheck
Me![Modelo Subformulario].Form.FilterOn = True
Else
Me![Modelo Subformulario].Form.FilterOn = False
End If

End Sub

Otras cosas son>> El Botón Aplicar Filtro no hace Falta.

Este Código de a continuación simplemente lo borras

Private Sub Comando49_Click()
'desactivas el filtro, por si estuviera puesto
Me.FilterOn = False
'Suponiendo que tu tabla toma los datos de la consulta
'SELECT * FROM tabla
'es como ponerle un WHERE a la consulta, pero sin la
'palabra "where":
Me.Filter = "Desactivar activo=" false "
'vuelves a activar el filtro y solito se aplica
Me. FilterOn
End Sub

Y por último una cuestión que no he mirado es la dimensión de la BD.

Está sin compactar y tiene 304 MB, pero es que aún compactandola, no baja de 396 MB y creo que una dimensión muy grande para los Objetos que veo.

Ya me comentarás. Un saludo >> Jacinto

¡Gracias! Ya me funciona a la perfection, respecto al peso de la base de datos quiero que es necesario una depuración de cosas obsoletas, como te dije hay muchas cosas que se puede mejorar pero como no se nada de códigos de poco a poco quiero mejorar la base de datos, con esa solución que me has dado de "Filtrar" puedo deshacerme de algunas consultas, "De veras Muchas Gracias por tu ayuda"

Si tuvieras una idea para mejorar la base de datos y realizas servicios de programación para empresas, la empresa en que estoy trabajando están buscando un programador para el desarrollo de programas útiles con base SQL. Me avisas

Bruce: No me dedico a las Aplicaciones comerciales.

Mi condición actual es la de jubilado y estoy en ésto por ayudar a los demás de modo altruista, al igual que hay otros personas de las que yo he aprendido.

No obstante si veo alguna manera de sugerirte como aligerar de peso tu BD, te lo comento.

Si vas de acuerdo con la solución a la pregunta inicial, la valoras y la doy por cerrada.

Un saludo >> Jacinto

¡Gracias! 

Bruce: Estaba repasando preguntas sin valoración y ésta es una de ellas.
Te agradeceré si la valoras, o si necesitas información adicional, me comentas.
Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas