Es que no tiene sentido este código:
Código Delphi
[-]
case CBListaPrecio.ItemIndex of
0:Precio := DM.ZQAgregarItems.FieldByName('Precio1').Value;
1:Precio := DM.ZQAgregarItems.FieldByName('Precio2').Value;
2:Precio := DM.ZQAgregarItems.FieldByName('Precio3').Value;
3:Precio := DM.ZQAgregarItems.FieldByName('Precio4').Value;
4:Precio := DM.ZQAgregarItems.FieldByName('Precio5').Value;
5:Precio := DM.ZQAgregarItems.FieldByName('Precio6').Value;
end;
La sql queda al final como:
Código SQL
[-]
SELECT prod.*, tari.*
FROM productos AS prod JOIN tarifas AS tari
ON prod.id_producto = tari.id_producto
WHERE tari.listaprecio = 'Precio1' // suponemos que el usuario ha elegido en el CBListaPrecio el "precio1".
Es decir, solo estas pidiendo el precio1 para todos los productos que tienes en la Base de datos.
En resumen, ese código se traduce a:
Código Delphi
[-]
Precio := DM.ZQAgregarItems.FieldByName('Precio').Value;
puesto que previamente has pedido el "precio1" en el combo, en la consulta solo estará el Precio de esa tarifa.
Si te dice que no encuentra el campo "precio", dale un doble clic a tu query ZQAgregarItems, en la ventana que sale, borra todos los campos y después con el boton derecho añade los campos de nuevo.
Saludos