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