you can use a delete query with a join, however the tbalke defitnion and order is critical
Im guessing you need to change the join to refer to tblStockRequired in place of tblOrderCompleted
DELETE tblStockRequired.StockCode, tblStockRequired.StockQTY, tblStockRequired.OrderNumber
FROM tblOrderCompleted INNER JOIN tblStockRequired ON (tblOrderCompleted.OrderNumber = tblStockRequired.OrderNumber) AND (tblOrderCompleted.StockCode = tblStockRequired.StockCode) AND (tblOrderCompleted.QTY = tblStockRequired.StockQTY);
In effect the JET query analyser chickes out and doesn't try to work which table is actually being referred. Incidently it depends on the SQL but some theorists say its delete * from tblStockRequired......
ANSI SQL uses another form
delete from tblStockRequired......