Si ha logrado que le funcione: felicidades.
Pero su respuesta me reafirma que si no funcionaba era a consecuencia de que desconoce como funcionan las bases de datos relacionales y los eventos asociados.
Un detalle a tener en cuenta es que 'las validaciones' si no están bien diseñadas Access las ignora (caso muy común cuando se desea filtrar y el filtro no es valido, consecuencia: no se aplica).
En el diseño de relaciones mostrado, el campo STOCK no existe en la tabla 'Pedidos_Clientes' que se utiliza para generar los nuevos registros.
La consecuencia: en un registro nuevo ese dato no tendrá valor porque aun no se sabe que código de producto se va a introducir y si algo aparece en el cuadro de texto STOCK será inventado o aleatorio.
Falta una interacción en el evento 'después de actualizar del campo 'codigo_articulo' para obtener el STOCK real del articulo recién introducido (y 'antes' de introducir la cantidad).
El valor que hubiera en STOCK (por defecto asumo que un NULL en los registros nuevos) hace esa regla inoperante.
Si el registro esta creado, al presentarlo (cargarlo en el formulario) como se dispone del código de articulo, si existe una función de dominio (DBusq o DLookup) se mostrara su STOCK.
(Nota: la función que se utilice para obtener el STOCK como campo calculado, solo actúa por defecto al cargar el formulario, tras ese evento hay que forzar su ejecución para que actualice el dato)
Si desea seguir experimentando le aconsejo que planifique la actualización del STOCk en la tabla artículos según se consuman (sea al introducir un pedido o si se corrige la cantidad en tiempo de ejecución) para que los inventarios no delaten errores.
Hay en muchas Web ejemplos abiertos y gratuitos (además de los que acompañan a Access) de la metodología a utilizar en cada circunstancia y sin código (a lo sumo MACROS como alternativa), porque a tiempo actual el programador es es que tiene que guiar al programa y no viceversa.