Access - conteo casillas de verificación independientes

 
Vista:
sin imagen de perfil

conteo casillas de verificación independientes

Publicado por abraham (2 intervenciones) el 04/05/2017 06:10:31
Hola, buena noche:

Estoy realizando un formulario de consulta, y lo que quiero hacer es insertar casillas independientes, que seleccionen los parámetros de la consulta, por ejemplo:

casilla verificación filtro para clientes
casilla de verificación filtro por fecha
casilla verificación filtro empresa

y saber cuantas de estas casillas están seleccionadas para darle valores a variables y formar una sola consulta, dependiendo de que casillas seleccionaron.

espero haberme explicado correctamente, quedo en espera de sus comentarios.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

conteo casillas de verificación independientes

Publicado por Norberto (753 intervenciones) el 08/05/2017 15:29:15
Hola.

Más que cúantas están activas querrás saber cúales lo están, ¿no?. El siguiente ejemplo asume que las casillas de verificación se llaman chk seguidas del nombre del campo correspondiente, en tu caso chkClientes, chkFecha y chkEmpresa y los cuadros de texto en los que escribes el valor del filtro serán, respectivamente, txtClientes, txtFecha y txtEmpresa. También asume que los nombres de los campos no llevan espacios en blanco.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
    Dim Filtro As String, Ctrl As Control, CtrlNom As String, CampoNom As String
 
    For Each Ctrl In Me.Controls    'Para cada control
        If TypeName(Ctrl) = "CheckBox" Then 'Si es una casilla de verificaicón
            If Ctrl Then                    'Si está activada
                CampoNom = Mid(Ctrl.Name, 4)    'Del nombre del CheckBox chkNombreCampo sacamos NombreCampo
                CtrlNom = "txt" & CampoNom      'El cuadro de texto donde esté el criterio será txtNombreCampo
                If Filtro <> "" Then
                    Filtro = Filtro & " AND "   'Si ya hay un filtro previo añadimos el operador AND
                End If
                If InStr(1, CampoNom, "Fecha") > 0 Then 'Si el nombre contiene la palabra Fecha se entiende que lo es
                    'Añadimos una condición de tipo Fecha
                    Filtro = Filtro & CampoNom & " = #" & Format(Me.Controls(CtrlNom), "mm/dd/yyyy") & "#"
                Else
                    'Añadimos una condición de tipo Texto
                    Filtro = Filtro & CampoNom & " = '" & Me.Controls(CtrlNom) & "'"
                End If
            End If
        End If
    Next
...

Al finalizar el bucle, la variable Filtro contendrá la condición completa para que la emplees como creas conveniente, aplicando el filtro en el propio formulario (Me.FilterOn = True: Me.Filter = Filtro), abriendo otro formulario aplicándolo (DoCmd.OpenForm "Formulario Resultados", , , Filtro)...

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

conteo casillas de verificación independientes

Publicado por Norberto (753 intervenciones) el 10/05/2017 11:43:14
...cuántas y cuáles... que parece que he tirado las tildes al aire y donde han caido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

conteo casillas de verificación independientes

Publicado por abraham (2 intervenciones) el 10/05/2017 21:19:19
Muchas gracias, en cuánto lo aplique te comentaré el resultado. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar