Cómo ordenar alfabéticamente un formulario con combos enlazados
Normalmente tengo los registros de un formulario con varios cuadros combinados ordenados por un código numérico, pero en ocasiones me interesa que los registros se ordenen alfabéticamente por esos cuadros combinados. Para ello he creado un control que, al pulsarlo, alterna el orden numérico con el alfabético.
Suponiendo 3 cuadros combinados o combos que almacenan en la columna principal un número y en la secundaria un texto, que es lo que se ve en el formulario, llamados: ID1 ID2 ID3
Al pulsar el control se activa una macro que ordena los registros así:
"[Lookup_ID1].[Texto1], [Lookup_ID2].[Texto2], [Lookup_ID3].[Texto3]"
Esto me funcionaba. El problema me ha surgido cuando he decidido hacer dependiente el combo ID2 del combo ID1
Es decir, la selección de una opción en el combo ID1 ahora determina las opciones posibles del combo ID2, en lugar de como ocurría antes, en que era yo quien, manualmente, tenía que decidir, de todas las opciones del combo ID2, cuáles eran adecuadas en función de lo que hubiese seleccionado en el combo ID1.
Lo de enlazar los combos lo he hecho siguiendo ejemplos que he leído aquí, y funciona., actualizándose las opciones del combo 2 si modifico el combo 1. También puedo navegar por los registros del formulario apareciendo siempre los combos con las opciones correctas cuando paso de un registro a otro. Todo parece funcionar, menos lo de ordenar alfabéticamente los registros.
Al pulsar el control que cambia al orden alfabético, ya no funciona correctamente, porque la instrucción "Lookup_ID1].[Texto1], [Lookup_ID2].[Texto2], [Lookup_ID3].[Texto3]" no hace ni caso del contenido del Combo dependiente ID2
Y así, en vez de poner en primer lugar al registro:
ID1 Literatura
ID2 Narrativa
ID3 Vázquez Manuel
Y en segundo lugar al registro:
ID1 Literatura
ID2 Teatro
ID3 Abella, Fermín
Ordena correctamente los combos independientes ID1 e ID3, pero ignora el contenido del combo dependiente ID2, por lo que coloca primero a Abella, Fermín y después a Vázquez, Manuel
Supongo que lo que ocurre es que, al establecer el orden alfabético, la macro que lo hace debe antes actualizar los registros de alguna forma, pero no he descubierto cómo hacerlo.
Y esa es la pregunta: ¿Qué debo hacer para que los registros se ordenen alfabéticamente por el contenido de tres combos, cuando el combo 2 depende del combo 1?
El problema no solo se produce cuando cambio el contenido de alguno de los combos, sino siempre, incluso sin haber actualizado nada. De modo que si abro el formulario y sin cambiar nada paso al orden alfabético no funciona correctamente
Yo suelo trabajar con macros, pero si me dais la solución en VBA creo que me podré apañar.