Mothra
July 5th, 2005, 11:25 AM
I'm trying to create an update query to update a cost field using values from another table. I can't get this to run, keep getting the 'must use updatable query error'. I must be missing something, but it looks fine to me?? If anyone is wondering the sub-select is to grab the latest entered cost for each item. Any help/suggestiosn would be appreciated. This is MS Access 2003.
UPDATE po_dpart a
SET a.cost = (SELECT b.cost
FROM dpart_cost b
WHERE b.date_set =
(SELECT MAX(b1.date_set)
FROM dpart_cost b1
WHERE b1.date_set <= #6/30/05#
AND b1.part_number = a.part_number
AND b1.supplierID = 'pas'
)
AND b.part_number = a.part_number
AND b.supplierID = 'pas'
)
WHERE EXISTS
(SELECT c.cost
FROM dpart_cost c
WHERE c.date_set =
(SELECT MAX(c1.date_set)
FROM dpart_cost c1
WHERE c1.date_set <= #6/30/05#
AND c1.part_number = a.part_number
AND c1.supplierID = 'pas'
)
AND c.part_number = a.part_number
AND c.supplierID = 'pas'
)
AND a.project_number = 100
AND a.po_number = 9003;
UPDATE po_dpart a
SET a.cost = (SELECT b.cost
FROM dpart_cost b
WHERE b.date_set =
(SELECT MAX(b1.date_set)
FROM dpart_cost b1
WHERE b1.date_set <= #6/30/05#
AND b1.part_number = a.part_number
AND b1.supplierID = 'pas'
)
AND b.part_number = a.part_number
AND b.supplierID = 'pas'
)
WHERE EXISTS
(SELECT c.cost
FROM dpart_cost c
WHERE c.date_set =
(SELECT MAX(c1.date_set)
FROM dpart_cost c1
WHERE c1.date_set <= #6/30/05#
AND c1.part_number = a.part_number
AND c1.supplierID = 'pas'
)
AND c.part_number = a.part_number
AND c.supplierID = 'pas'
)
AND a.project_number = 100
AND a.po_number = 9003;