Al cargar un formulario seleccionar MáxDe____ para varios grupos de registros.

Y gracias anticipadas a los que me puedan echar una mano.

Creo que es pregunta de parvulitos, pero me pierdo. Tego algo tan simple como esto:
Private Sub Form_Load ()

GLOrden = MáxDeOrden

End Sub

Y hasta ahora sin ningún problema, Orden es una variable del formulario cuyo valor iba aumentando a conveniencia partiendo, al entrar, del valor máximo encontrado y guardado en una variable Global. Y lo hacía para una única Ubicación (otro valor del formulario)

El problema es que ahora tengo varias ubicaciones a las que me interesa ir incrementando su propio valor de Orden que al cargar guardaría en diferentes variables globales.

La cuestión es que no sé como hacer la selección de cada Ubicación para buscar a cada una su MáxDeOrden y que solo sea para eso, porque el formulario se tiene que abrir con todos los registros de la tabla/consulta y luego en cada registro incrementar el Orden según su Ubicación.

Bueno.

1 respuesta

Respuesta
2

Al ojear la pregunta surgen muchas dudas, la exposición es muy generalista e imprecisa.

Si lo que se pretende es aumentar los elementos a controlar en base a un entorno diseñado para un único elemento, lo natural seria multiplicar lo que ya está creado tantas veces como elementos a controlar.

Si los datos se van a unir en un único conjunto, habrá que crear un elemento diferenciador que distinga su procedencia para poder individualizar los cálculos y el método es el mismo que el utilizado en los 'falsos autonuméricos', esto es añadir en el ID de cada subconjunto su origen para poder juntarlos 'sin que estén revueltos' .

Si antes (individualmente) el ID era 1, 2, 3, 4 ... NN

El nuevo seria
Pepe_1, Pepe_2 .... Pepe_NN
Juan_1, Juan_2 .... Juan_NN
Esa 'adaptación' se puede generar al momento de su importación y solo se precisaría cambiar el (se supone campo autonumérico = numero) a campo de tipo texto en aquellos lugares que sea necesario para mantener los subconjuntos.

Sobre la metodología para crear los 'falsos autonuméricos' hay mucha información en la red y en este foro también, utilizar el método que se adapte mejor al entorno actual.

Lo expuesto es una interpretación basada en los escasos datos disponibles, una exposición más precisa (incluso criticando la respuesta) permitiría más posibilidades o más puntos de vista.

Hola Enrique... muchas gracias por atenderme, perdona que no te haya contestado antes y que mi exposición no fuera nada clara, trato de hacerla un poco más concreta a ver si me puedes ayudar...
Tengo una tabla a la que añado registros a través de un formulario.
Entre los campos de cada registro hay uno que se llama UBICACIÓN y otro que se llama ORDEN que es el orden numérico que sigue cada elemento dentro de esa ubicación.

Hasta ahora solo tenía una UBICACIÓN = ARMARIO y cada vez que en un registro rellenaba UBICACIÓN con ese valor, se incrementaba en uno el valor numérico de ORDEN.
Para saber por donde iba la cuenta de ORDEN que después habrá que incrementar, al cargar el formulario, buscaba su número Máximo y lo guardaba en una variable global.

Private Sub Form_Load ()

GLOrden = MáxDeOrden

End Sub
Ahora tengo más ubicaciones, además de ARMARIO, ESTANTERíA, y de igual manera el campo ORDEN que es único debe llevar una cuenta diferente según los elementos estén en Armario o Estantería.
Para eso cambiaría la variable global y ahora serían dos, una para cada caso 

GLOrdenArmario

GLOrdenEstantería

Lo que creo que tengo que hacer, pero no sé cómo, es hacer un SELECT (supongo) de UBICACIÓN = ARMARIO y poner 
GLOrdenArmario = MáxDeOrden

y hacer un SELECT (supongo) de UBICACIÓN = ESTANTERÍA y poner 
GLOrdenEstantería = MáxDeOrden

Y, lógicamente esos SELECT (que insisto no tengo claros) solo para poner el valor en las variables globales porque al abrir la tabla con el formulario deben de estar accesibles todos los registros, tanto los de una ubicación como los de otra.
Bueno, espero haberme explicado mejor y que me puedas ayudar. Agradezco mucho tu esfuerzo.

Un saludo.

Si la finalidad es conocer el mayor de un subconjunto de datos (subconjuntos: cada una de las ubicaciones) se puede hacer en tiempo de ejecución, no se necesita guardar nada.

El mayor de una ubicación se obtiene así:

EL_Mayor = DMax("Orden", "la-tabla-con-datos", "Ubicacion = '" & [aqui-la-ubicacion] & "'")

 La funcion devolvera el valor mas alto del subconjunto cada vez que se ejecute, si se desea se puede añadir uno y tambien prepararla para iniciar cualquier nuevo subconjunto:

EL_Siguiente = 1 + Nz (DMax("Orden", "la-tabla-con-datos", "Ubicacion = '" & [aqui-la-ubicacion] & "'"), 0)

Hola Enrique, perdona que no te haya dicho nada antes... va fantástico!!! Un millón de gracias!! 
No hay nada como saber!!! Lo dicho Muchas Gracias!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas