Ubicar rangos respecto a valores de tablas en Microsoft Access

Hola Query:
Resulta que tengo dos tablas:
1.Tabla de Valoración
Campos = rangoInferior,rangoSuperior,Valor
RI RS Valor
0 5 1
5 10 2
10 20 3
20 50 4
50 100 5
Y en otra tabla tengo valores.
Lo que quiero hacer es que de acuerdo al valor de la segunda tabla el ubique el rango y califique con el valor de la primera tabla.
Te agradezco me ayudes en lo que puedas
Cordial Saludo.

1 respuesta

Respuesta
1
Primero disculpa por el retraso, pero es que he tenido mucha faena y luego las vacaciones.
Bueno, lo que te propongo es un poco sofisticado pero funciona.
1º Crea un módulo y añade las siguientes funciones:
'<<<<< FUNCION PUBLICA QUE SE HA DE UTILIZAR EN LA CONSULTA DE SELECCIÓN QUE NOS DEVOLVERA LA NOTA DEL VALOR
Public Function ValorRango(Valor As Long) As Long
Dim sSQL As String
Dim rs As Recordset
' (Valoracion) es la tabla que contiene el rango de valores sup e inf
' Se crea una consulta de agrupación de tope uno que devuelve la nota
' del valor que se le pasa como parámetro
sSQL = "SELECT TOP 1 Valoracion.Valor " & _
"FROM Valoracion " & _
"GROUP BY Valoracion.Valor, Valoracion.rangoSuperior " & _
"HAVING (Min(Valores.rangoInferior) <= " & Valor & ") " & _
"ORDER BY Min(Valoracion.rangoInferior) DESC;"
Set rs = SQL_Leer(sSQL)
ValorRango = rs(0)
rs.Close
Set rs = Nothing
End Function
'<<<<< FUNCION QUE DEVUELVE UN CURSOR DE LECTURA AL ORIGEN ESPECIFICADO
Private Function SQL_Leer(sSQL As String) As Recordset
Set SQL_Leer = CurrentDb.OpenRecordset(sSQL, dbOpenSnapshot, dbSeeChanges)
End Function
2º Crea una consulta de selección con la tabla de valores y añade un campo calculado que sea - Expr1: ValorRango([Valor]) - siendo Valor el campo de la tabla que contiene el valor para el cual quieras conocer su nota.
Pruébalo y me comentas.
¿Cómo te ha ido la consulta?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas