Updating the one table in one to many relationship

M

Marv

I have two tables: Orders and payments. Each order can
have zero to many payments. The order table has the
order number, name & address, amount owed and date
shipped. The payment table has the order number, a
payment reference number (check number for example) and
an amount paid.

An order is filled if the date shipped is filled in AND
the total of the payment amount equals the amount of the
order in the Order table. I want my "Open Orders" form
to display only open orders (ship date blank or sum of
amount paid does not equal amount owed).

How can I do this so I see only open orders and I can add
the date shipped, for example, to make it drop off the
form? Every way I try I get an unupdatable query.
 
A

Allen Browne

Try a subquery in the WHERE clause of the form's RecordSource.
Something like this:

SELECT Orders.*
FROM Orders
WHERE (Orders.[ShipDate] Is Null)
OR (CCur(Nz(
( SELECT Sum([AmountPaid]) As SumOfAmountPaid
FROM Payments
WHERE Payments.OrderID = Orders.OrderID ),0))
<> Orders.[amount owed]);

You can use that WHERE clause as the Filter of your form if you prefer.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top