Cómo seleccionar y utilizar el valor de 3 campos en un recordset

He creado un recordset sobre una consulta.

Y de dicho recordset quiero seleccionar 3 registros que cumplan unas condiciones, para luego poder utilizarlos.

Concretamente los 3 registros cuyos valores sean los más altos del recordset, en base a una condición.

Esta condición viene determinada por la diferencia de valor que exista entre 2 de los campos de los registros del recordset. Dichos campos serían "mediadeempresa" y "resultadodeltaller". De forma que pueda seleccionar los 3 registros con el valor más alto resultante de la diferencia de "mediaempresa" y "mediataller". En esos 3 registros seleccionados el campo que me interesa realmente conocer es uno denominado "Indicador".

Y no sé como hacerlo tras múltiples intentos...

Os dejo la parte de código que supongo es válida y sobre la que habría que incorporar esa parte que soy incapaz de programar

...

"rst.MoveFirst
Do Until rst.EOF
Rtaller = IIf(IsNull(rst.Fields("mediataller").Value), -0.1, rst.Fields("mediataller").Value)
Rempresa = IIf(IsNull(rst.Fields("mediaempresa").Value), -0.1, rst.Fields("mediaempresa").Value)

If Rempresa > Rtaller Then
diferencia = Rempresa - Rtaller
Vigilancia = rst.Fields("Indicador").Value
End If
Rst.MoveNext

Loop"

En definitiva desearía poder seleccionar los 3 valores más altos de la variable diferencia, de forma que con los 3 registros asociados (y más concretamente con el campo "indicador" de los mismos), pueda luego trasladarlos a un textbox que diga algo así:

"Los indicadores del taller que peores resultados tienen en relación al conjunto de la empresa son"&vigilancia&","&vigilancia"y"&"vigilancia"

Y supongo que tendré que crear previamente 3 variables para almacenar los 3 diferentes valores que la variable vigilancia ha de contemplar.

Muchas gracias por vuestra atención

Añade tu respuesta

Haz clic para o