Como acceder a un valor de un registro en access

Hola a todos,

A ver si me pueden ayudar ya que soy nuevo en access

Necesito calcular el costo de envío de un transporte y he creado las siguientes tablas

tabla Nacional

y estas son las columnas

id zona 50 100 200 ... <==esta parte muestra la zona y Kilos

1 0 14,52 23,09 36,52

2 1 13,81 20,42 39,37

Entonces al calcular el volumen y multiplicar por un factor me da un valor por ejemplo 30 kg

tengo que ir a la tabla Nacional y donde esta la columna extraer y mostrar el valor 14,52 ya que la zona a la que pertenece es 0 si fuera la zona 1 entonces tendría que darme el valor de 13,81 esto es lo que no se hacer.

Gracias y saludos

1 respuesta

Respuesta
1

Yo haría una consulta que te pida la zona y el peso. En función de esos datos te devolvería el importe.

La consulta en SQL sería algo así:

Select iif([peso calculado]<=50,[50], iif([peso calculado]<=100,[100], iif([peso calculado]<=200,[200], .....))) as importe

FROM nombreDeLaTabla

WHERE zona=[código de zona];

Para poner este código tienes que crear una consulta, irte a "ver - SQL" y escribirlo ahí.

De todas formas te diré que no me gusta la estructura de la tabla. ¿Qué pasaría si mañana tuvieras paquetes/precios de 150 kilos o dejases de tener los de 100? Te tocaría modificar la tabla y, lo que es peor, todas las consultas que accedieran a ella.

La estructura correcta sería:

Zona - PesoMax - Importe

0 - 50 - 14,52

0 - 100 - 23,09

.......

1 - 50 - 13,81

..... etc....

Para esta estructura la consulta se complicaría un poco más (tampoco es mucho), pero si metes nuevos pesos (o quitas alguno) cogería sus precios sin problemas.

Si decides usar esa estructura, el SQL sería el siguiente:

SELECT importe FROM nombreDeLaTabla

WHERE zona=[código de zona] AND

pesoMax in (SELECT min(pesoMax) FROM nombreDeLaTablaWHERE zona=[código de zona] and peso>=[peso calculado])

Muchas gracias por tu respuesta y consejos probaré lo que me has sugerido.

Si tengo algún problema, ya volveré si no te importa a molestarte.

Gracias y saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas