Access - Formulario continuo

 
Vista:
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 21/12/2021 10:10:48
Buenos días y gracias de antemano por la ayuda.

He creado un formulario (tipo continuo) para que el usuario pueda hacer una búsqueda de clientes de forma dinámica, es decir, filtrando según su necesidad, en función del número de pedidos, fechas, facturación, etc. Importante destacar que la consulta asociada a este formulario se alimenta de varias tablas y consultas. Hasta aquí, bien.

Ahora imaginemos que el usuario realiza su filtro de búsqueda y se listan en pantalla 20 registros. Tengo un botón en el encabezado del formulario para enviar un correo electrónico o un whatsapp a cada uno de esos 20 registros. Todo bien.

De esos 20 registros (por el motivo que sea), deseo descartar alguno de ellos antes hacer el envío de correo o whatsapp. Me gustaría crear una especie de "casilla de verificación" en la fila de cada registro para activar o desactivar de forma individual. Por supuesto he probado a crear un campo tipo "Sí/No" en una de las tablas que intervienen en la consulta, pero como hay otras tablas y consultas involucradas, no se puede hacer la selección individualizada.

¿Alguna idea de cómo resolver el problema?. Gracias.
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

Formulario continuo

Publicado por Anonimo (3315 intervenciones) el 21/12/2021 15:54:34
Una lista oculta con los ID que se desea excluir.

Si la lista esta vacía no afectara, si se le añaden IDs (por ejemplo con un doble click) los excluirá.

Solo se precisa añadir una condición mas al filtro:

1
..... And [campo con los IDs]  Not In ( lista de valores separados por comas = lista oculta) ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 22/12/2021 10:12:16
Gracias por la respuesta.
Entiendo lo que planteas. Otra cosa es que sepa como hacerlo. ¿Cómo creo esa lista oculta? ¿Como seria el código para añadir o quitar elementos a esa lista?
Gracias
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

Formulario continuo

Publicado por Anonimo (3315 intervenciones) el 22/12/2021 17:10:31
¿Cómo creo esa lista oculta?

Se declara una variable a nivel de formulario (de tipo texto)


¿Como seria el código para añadir o quitar elementos a esa lista?


Si el ID es alfanumerico se le añade una comilla simple al inicio y final (ID= AAA123-2021 ===> 'AAA123-2021')

Si el ID es numerico no la necesita (Id = 1234 ===> 1234

Se añade el nuevo elemento y si ya hay mas, una coma como separador:
1
Variable = variable & "," & [valor obtenido]  ' sea  'AAA123-2021' o 1234


¿Como seria el código para añadir o quitar elementos a esa lista?


Como se conoce el valor a suprimir, la función REPLACE lo puede eliminar (ojo con las comas perdidas, no puede haber dos consecutivas o las considerara un valor NULL)

Al final la lista debería ser algo como:
1
2
3
'AAA123-2021', 'AAA023-2021', 'AAA123-2001', ...... == contenido de la variable ==>  "'AAA123-2021', 'AAA023-2021', 'AAA123-2001'"
 
1234,789,100,22222, .......  == contenido de la variable ==> "1234,789,100,22222"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 22/12/2021 18:42:02
Perfecto!! Muchas gracias. Lo estaba haciendo con un cuadro de lista pero creo que va a ser mejor con un cuadro de texto tal y como lo estabas planteando. Un saludo y de nuevo gracias por la ayuda.
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 Eduardo

Formulario continuo

Publicado por Eduardo (316 intervenciones) el 22/12/2021 21:13:30
¿Cuál lista oculta?. No dude en hacerlo con un cuadro de lista, porque le facilita marcar y desmarcar los registros a excluir, observe este ejemplo:


selecNOT_IN_01

Hago clic en imprimir, efectivamente no se imprimen los registros elegidos, en este caso 4,6 y 8


selecNOT_IN_02

Este es el código

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Private Sub btnImprime_Click()
 
 Dim sFiltro As String
 Dim varPos As Variant
 
 If lstClientes.ItemsSelected.Count = 0 Then
    MsgBox "No ha seleccionado los registros a excluir", vbInformation, "Le informo"
    Exit Sub
 End If
 
 
 For Each varPos In lstClientes.ItemsSelected
 
   'NOTA: Si toma la columna 0 y esta contiene el  ID elija la primera opcion
 
      sFiltro = sFiltro & Me.lstClientes.ItemData(varPos) & ","
 
      ' Obtendría algo como: NOT IN(2,4,6)
 
      'Si toma la columna 1 y es texto escoja la siguiente opción
 
     ' sFiltro = sFiltro & "'" & Me.lstClientes.Column(1, varPos) & "'" & ","
 
      ' Obtendría algo como: NOT IN('Chinú','Cartagena','Sincelejo')
 Next varPos
 
 If sFiltro <> "" Then
  sFiltro = Left(sFiltro, Len(sFiltro) - 1)
 End If
 
 DoCmd.OpenReport "rptClientes", acViewPreview, , "idte NOT IN( " & sFiltro & ")"
 
 
End Sub

Con base en sus conocimientos trate de adaptarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Formulario continuo

Publicado por Anonimo (3315 intervenciones) el 22/12/2021 22:31:05

.... He creado un formulario (tipo continuo) para que el usuario pueda hacer una búsqueda de clientes de forma dinámica, .....




¿Cambiar lo que ya esta diseñado para convertirlo en un cuadro de lista de selección múltiple? ...

Si se dispone e espacio (y no destroza la estética o ergonomía), es tan sencillo como mostrar esa lista utilizando un cuadro de lista o combo para 'retornar' a los seleccionados por error (un click y de vuelta a la impresora).
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 Eduardo

Formulario continuo

Publicado por Eduardo (316 intervenciones) el 23/12/2021 00:18:52
No le refuto porque desconozco cómo tiene el formulario quien pregunta, yo personalmente la hago diferente.
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
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 23/12/2021 10:15:03
Gracias por la aportación. En este caso utilizaré la versión de campo de texto o cuadro de lista oculta, porque ya tengo el formulario diseñado y en funcionamiento. Aplicaré su código para otros casos porque también me parece muy buena solución. 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
Imágen de perfil de Eduardo

Formulario continuo

Publicado por Eduardo (316 intervenciones) el 23/12/2021 13:51:53
Pero no es la forma de trabajar, hubiera reemplazado el formulario continuo por un cuadro de lista creando el origen de datos mediante SQL con base en el filtro de la búsqueda, es más practico. Tengo ejemplos complejos sobre filtros de este tipo y lo elaboro con un FOR EACH recorriendo los controles aprovechando la información adicional del campo (TAG), algo que muchos no lo utilizan, hace que se ahorre bastante código.

A veces se debe rediseñar algo, pero así es la programación, no obstante, me alegro haya solucionado su inquietud. Por esto no entendió mi código ANOMINO al decir "¿Cambiar lo que ya esta diseñado para convertirlo en un cuadro de lista de selección múltiple? ..." No era cambiar sino reemplazar este formulario continuo por un cuadro de lista.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 23/12/2021 13:58:01
Agradezco las explicaciones. Lo tendré en cuenta. Gracias y un saludo.
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

Formulario continuo

Publicado por Lizarry (4 intervenciones) el 24/12/2021 10:04:09
Tema bastante interesante para conocer
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 Eduardo

Formulario continuo

Publicado por Eduardo (316 intervenciones) el 24/12/2021 21:11:35
Si le interesa el tema puede solicitar este ejemplo a [email protected]. Consta de 2 tipos de filtro, con formulario y elección del resultado del filtro mediante un cuadro de lista (Es a lo que hice referencia en esta respuesta). Voy a exponer solo el sistema mediante un cuadro de lista.

filtro_00

Observe que hay 7 cuadros de texto para combinar el filtro, puede inclusive anotar parte de un texto. En este caso en el campo "Concepto", anoto la palabra "PAGOS", pude haber anotado "PAG", también es válido. Hago clic en el botón filtro y obengo 3 registros

filtro_01

Ahora como por defecto en el cuadro de opciones está marcado "Incluir", indica que solo se exportarán a Excel y se imprimirán estos registros.

filtro_02_1

Al hacer clic sobre el botón de Excel obtengo:

filtro_02

Y al hacer clic sobre el botón imprimir obtengo:

filtro_03

Hay cosas interesantes, como la función para exportar a Excel cuyo autor es Daniel Pineault, CARDA Consultants Inc. y el origen de datos para el reporte. Quedan muchos aspectos por mejorar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 24/12/2021 21:35:49
Lo voy a adaptar porque en el fondo es muy similar a lo que estoy buscando. Primero el usuario hace una búsqueda aplicando filtros, después depura el filtro con la selección en el cuadro de lista, y luego (en mi caso), envía un email, un whatsapp, o lo que se necesite. Gracias
formulario
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 Eduardo

Formulario continuo

Publicado por Eduardo (316 intervenciones) el 24/12/2021 21:59:12
Si lo puede solicitar al correo que anoté. Un saludo desde Colombia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 59
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Formulario continuo

Publicado por Juanjo (37 intervenciones) el 28/12/2021 14:27:06
Finalmente probé las dos alternativas. Tipo formulario continuo con un cuadro de texto oculto para hacer la selección de registros a imprimir (o lo que sea) y luego me olvidé del formulario continuo y lo planteé como cuadro de lista.

Personalmente me gustan las dos alternativas y ya es cuestión de gustos. En este caso particular me quedaré con el cuadro de lista porque es visualmente más fácil de interpretar cuando se trabaja con él. Sin embargo hay algo que no me gusta nada del cuadro de lista y es que no se pueda controlar la alineación de los datos de cada columna (por ejemplo alinear a la derecha un dato con formato numérico o de moneda). Tampoco puedo controlar los colores de una fila seleccionada (al menos yo no lo se hacer), ni como poner un dato tipo hipervínculo para que abra otro formulario por ejemplo.

Si sabe como hacerlo, agradecería la ayuda. 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