Access - Agrupación de valores en informes

 
Vista:

Agrupación de valores en informes

Publicado por Angel Felix Gil Vaquero (1 intervención) el 11/09/2006 17:07:39
Tengo un problema con un informe en Access 2000 heredado de Access 97 en el que quiero que me agrupe los
registros de la tabla origen por los valores de un campo de texto, el
problema en concreto es que me agrupa el valor A con la a, es decir
mayuscula con minúscula como si fuese lo mismo y es necesario
diferenciarlos, cosa que sí hacía el Access 97.
Es decir como se hace para que agrupe por carácter ASCII.
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 Alejandro

Agrupar registros por carácter ASCII en un informe

Publicado por Alejandro (4142 intervenciones) el 25/07/2023 16:35:12
En versiones posteriores de Microsoft Access, incluido Access 2000, el comportamiento predeterminado de la agrupación y ordenación de texto en consultas e informes puede depender de la configuración regional y del juego de caracteres utilizado en el sistema operativo. Esto puede hacer que Access agrupe las letras mayúsculas y minúsculas juntas, tratándolas como equivalentes.

Para lograr que Access agrupe por carácter ASCII y distinga entre mayúsculas y minúsculas, puedes usar una función personalizada en tu informe que convierta el texto a un valor numérico basado en el código ASCII de cada carácter. A continuación, te proporciono un ejemplo de cómo hacerlo:

1. Abre el informe en modo de diseño.

2. Agrega un cuadro de texto en el encabezado o el pie de grupo donde desees mostrar la agrupación.

3. Haz clic derecho en el cuadro de texto y selecciona "Generador de expresiones" (o "Generador de código" dependiendo de la versión de Access).

4. En el generador de expresiones, escribe la siguiente función:

1
2
3
4
5
6
7
8
9
10
Public Function GetAsciiGrouping(texto As String) As Long
    Dim i As Integer
    Dim asciiCode As Long
 
    For i = 1 To Len(texto)
        asciiCode = asciiCode + Asc(Mid(texto, i, 1))
    Next i
 
    GetAsciiGrouping = asciiCode
End Function

5. Cierra el generador de expresiones.

6. En el cuadro de texto que agregaste en el paso 2, establece la propiedad "ControlSource" para utilizar la función personalizada:

1
=GetAsciiGrouping([CampoTexto])

Reemplaza "[CampoTexto]" con el nombre del campo de texto de la tabla que deseas agrupar.

Con esta función personalizada, cada valor del campo de texto se convertirá en un número único basado en la suma de los códigos ASCII de sus caracteres. Como resultado, Access agrupará los registros de forma distinta según los caracteres utilizados en el campo y no tratará las mayúsculas y minúsculas como equivalentes.

Ten en cuenta que esta solución asume que los caracteres utilizados en el campo de texto tienen valores ASCII diferentes entre mayúsculas y minúsculas. Si estás utilizando caracteres especiales o alfabetos que no siguen la convención de códigos ASCII estándar, es posible que necesites ajustar la función para adaptarla a tu caso específico.
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