bijwerkquery lukt niet

Status
Niet open voor verdere reacties.

arnoderuig

Gebruiker
Lid geworden
8 sep 2000
Berichten
577
Ik heb een Access2010-database waarin zich o.a. de tabellen tblFactuur en tblBetaling bevinden. Bijgaand tref je de bestanden aan.

In de tabel tblFactuur heb ik een nieuw veld FactuurBedragOpenstaand toegevoegd. Ik wil dat dit veld via een bijwerkquery wordt gevuld met het saldo van het veld Factuurbedrag verminderd met het saldo van de betalingen volgens de gelinkte tabel tblBetaling (veld BetalingBedrag). In de tabel tblBetaling zijn natuurlijk niet altijd betalingen opgenomen. In dat geval dient het bedrag van het veld FactuurBedragOpenstaand te worden gesteld op de waarde van het veld FactuurBedrag .

Ik heb wat (tussen)queries gemaakt om ook voor mezelf duidelijk te krijgen wat er gebeurt. Uiteindelijk heb ik ook een bijwerkquerie gemaakt maar deze wil niet werken.

Wat die ik fout?
 

Bijlagen

  • Vraagstuk.zip
    27,5 KB · Weergaven: 20
Als je de db ook in 2003 format kan opslaan, kan ik wel eens kijken.
 
Beste, op het moment dat jij je bijwerkquery maakt geef je als join eigenschap op dat de velden factuurID van de beide tabellen aan elkaar gelijk moeten zijn.
Echter een factuurID komt niet voor in de tabel betalingen als er nog geen factuur is verstuurd.

Dus de join eigenschap op nummer 2 zetten alles van tbl facturen en alleen die ......

in de criteria van je bijwerkquery kan je dan de volgende regel opnemen:

IIf([tblBetaling]![BetalingBedrag]>0;[tblFactuur]![FactuurBedrag]-[tblBetaling]![BetalingBedrag];[tblFactuur]![FactuurBedrag])

Ik hoop je hierme van dienst te zijn geweest, en veel succes

Gr Jan
 
Laatst bewerkt:
Jarsky,

Ik heb niet het gevoel dat dit werkt. Voor Octafish (en eventueel anderen) heb ik bijgaand de 2003-versie geplaatst.

Gr. Arno.
 

Bijlagen

  • Vraagstuk2003.zip
    26,3 KB · Weergaven: 19
Dit zou 'm moeten zijn...

Code:
UPDATE tblFactuur LEFT JOIN tblBetaling ON tblFactuur.FactuurID = tblBetaling.FactuurID SET tblFactuur.FactuurBedragOpenstaand = IIf([tblBetaling]![BetalingBedrag]>0,[tblFactuur]![FactuurBedrag]-[tblBetaling]![BetalingBedrag],[tblFactuur]![FactuurBedrag]);
 
Octafish,

Bedankt voor je snelle reactie. Je voorbeeld gaat nog niet helemaal goed in gevallen dat op een factuur meerdere betalingen binnenkomen (dat komt in de praktijk veel voor maar was helaas niet in mijn voorbeelddatabase opgenomen).

Meteen aanvullend een vraag. Ik zou een vergelijkbare bijwerkquery willen gebruiken direct nadat een betaling wordt verwerkt als gebeurtenis. Alleen behoeft in dat geval natuurlijk alleen het factuurrecord te worden bijgewerkt waarvoor de betaling werd ontvangen. Ik zal dan iets moeten met een soort WHERE tblFactuur.factuurID = tblBetaling.factuurID ? Op welke plek zou dat moeten komen?

Gr. Arno.
 
Bijwerkqueries die met gekoppelde queries werken doen het niet altijd, zoals je al hebt gemerkt. Je kunt dan een hulptabel gebruiken. Dat heb ik in bijgaand voorbeeld dus gedaan. De actie bestaat nu uit twee queries, die via een macro worden afgeschoten. De uiteindelijke handeling is dus nog steeds één klik.
 

Bijlagen

  • Vraaqgstuk2003.zip
    26,4 KB · Weergaven: 38
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan