Esto es solo Javascript pero te voy a dar algunos tips de lo que debes tener en cuenta.
Tienes que hacer funciones en las 3 cajas si esta es la manera en que lo dejaras.
Por ejemplo la funcion del combo proveedores te llena el combo codigo y el combo productos y por lo tanto esa ya esta lista.
Ahora tienes que pasar al combo codigo, que si lo cambias te cambie el producto dentro de la lista que ya existe.
Y luego hacer una funcion al cambiar el producto que cuando lo elijas tambien te cambie el codigo dentro de la misma lista que ya esta llena.
Por lo tanto algo asi puedes hacer en codigo y producto.
Código:
function cambiaProducto(codigo){
var prod = document.getElementById('producto'); //productos
var max = prod.length; //elementos de combo producto
//recorremos los productos
for (var a=0; a < max; a++){
if(prod.options[a].value == codigo){
//aca el codigo es el mismo del producto
prod.options[selectedIndex] = a;
}
}
}
Esta funcion podria funcionar si el codigo del combo 2 es igual al valor del producto en el combo 3... pero no tengo toda la informacion como para aportarte mas...
Suerte!