Try this:
DELETE ShipmentHeadertbl.*, ShipmentHeadertbl.ShipmentID
FROM ShipmentHeadertbl
WHERE (((ShipmentHeadertbl.ShipmentID) In (SELECT
ShipmentHeadertbl.ShipmentID
FROM ShipmentHeadertbl LEFT JOIN ShipmentDetailtbl ON
ShipmentHeadertbl.ShipmentID = ShipmentDetailtbl.ShipmentID
WHERE (((ShipmentDetailtbl.ShipmentID) Is Null))

));
Can't remember the full explanation but I believe the query you are
using is not an updateable query. Strange that the delete appears to
work in the first place. Hoping one of our learned MVP can shed some
light on it...