aantal codes vermenigvuldigen met bedrag en bij andere tbl plakken

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.
OK, stapje-voor-stapje komen we verder :d De prompts verschijnen gelukkig niet meer in beeld, gebruikmakende van de volgende code:

Code:
UPDATE tblOrders, tblBewerkingen SET Totaalbedrag = IIf([BEWERKING1] Is Null,0,DLookUp("[Tarief]","tblBewerkingscodes","BEWERKINGSCODE='" & [BEWERKING1] & "'"))+IIf([BEWERKING2] Is Null,0,DLookUp("[Tarief]","tblBewerkingscodes","BEWERKINGSCODE='" & [BEWERKING2] & "'"))+IIf([BEWERKING3] Is Null,0,DLookUp("[Tarief]","tblBewerkingscodes","BEWERKINGSCODE='" & [BEWERKING3] & "'"))+IIf([BEWERKING4] Is Null,0,DLookUp("[Tarief]","tblBewerkingscodes","BEWERKINGSCODE='" & [BEWERKING4] & "'"))+IIf([BEWERKING5] Is Null,0,DLookUp("[Tarief]","tblBewerkingscodes","BEWERKINGSCODE='" & [BEWERKING5] & "'"));

Maar nu geeft Access "The query cannot be completed. Either the size etc. etc." Dit na +/- 5-10 min laden van de query, dus het groene metertje onderin, komt tot ongeveer een kwart en dan geeft Access bovenstaande melding....:eek:
 
Waarom heb je de tabel tblBewerkingen erbij staan? De DLoopkup heeft 'm niet nodig volgens mij. En het is geen tabel die je bijwerkt.
 
:thumb:Hoi,

Ik heb hem erbij staan omdat daar de velden Bewerking 1t/m5 in staan. Zodra ik deze eruit haal, gaat die weer de prompts geven voor Bewerking 1t/m5...
 
Werk je via een formulier of rechtstreeks met een query?
 
Ik vermoed dat-ie een Cartetisch product maakt, omdat de tabellen verder niet zijn gekoppeld. Dus voor elke record uit tabelA een record met alle records uit tabelB. Kun je een voorbeeldje maken met wat dummygegevens?
 
't Is zoals ik dacht; de twee tabellen moeten wel aan elkaar gekoppeld zijn op OrderID omdat de query anders niet weet welk record moet worden berekend. Als je in het queryontwerp de OrderID's aan elkaar koppelt is je query klaar.
 
OK ik heb het in het voorbeeldje inderdaad ook werkend gekregen.. in het echte bestand, doet Access er hééél lang over, maar krijg nog geen meldingen ofzo, wel lijkt hij op ongeveer de helft vast te zitten (gaat niet echt verder ofzo). Daarom laat ik hem gewoon even doordraaien vannacht, kijken wat er gebeurd... Wel is het zo dat in de echte versie de velden waarmee ik koppel verschillen van naam, dus de het ene veld heet OrderID gekoppeld met veld OrderKlantID, maakt dit nog uit??

Dank! :thumb:
 
Je gebruikt in je huidige query 5 Iif en 5 DLookup functies. Daar kun je van verwachten dat het niet al te snel zal gaan bij het uitvoeren ervan.
Hier een andere benadering. Werkt in het voorbeeld dat je laatst hier plaatste.
Code:
UPDATE tblOrders INNER JOIN (((((tblBewerkingen LEFT JOIN tblBewerkingscodes ON tblBewerkingen.Bewerking1 = tblBewerkingscodes.Bewerkingscode) LEFT JOIN tblBewerkingscodes AS tblBewerkingscodes_1 ON tblBewerkingen.Bewerking2 = tblBewerkingscodes_1.Bewerkingscode) LEFT JOIN tblBewerkingscodes AS tblBewerkingscodes_2 ON tblBewerkingen.Bewerking3 = tblBewerkingscodes_2.Bewerkingscode) LEFT JOIN tblBewerkingscodes AS tblBewerkingscodes_3 ON tblBewerkingen.Bewerking4 = tblBewerkingscodes_3.Bewerkingscode) LEFT JOIN tblBewerkingscodes AS tblBewerkingscodes_4 ON tblBewerkingen.Bewerking5 = tblBewerkingscodes_4.Bewerkingscode) ON tblOrders.OrderID = tblBewerkingen.OrderID SET tblOrders.Totaalbedrag = nz([tblBewerkingsCodes].[tarief])+nz([tblBewerkingsCodes_1].[tarief])+nz([tblBewerkingsCodes_2].[tarief])+nz([tblBewerkingsCodes_3].[tarief])+nz([tblBewerkingsCodes_4].[tarief]);
 
Superbedankt voor je code Harry46!!! De code werkte hiermee namelijk direct! En supervlug ook! :thumb::thumb::thumb: Je had helemaal gelijk.

Helaas moest ik nog iets aan de berekening toevoegen, namelijk het tijdsaspect erbij betrekken. Die komt in een aparte tabel (weer), en volgens mij klopt het nu wel allemaal, maar hij doet het nog niet.

Access zegt: "Mismatch in criteria expression". Desalniettemin corresponderen alle gegevenstypen met elkaar (tekst met tekst, nummer met nummer), maar toch die melding...

Kan iemand zien in het voorbeeld wat er nu eigenlijk nog misgaat?
 

Bijlagen

OrderID is in tblBewerkingen numeriek, in tblOrders en tblUren tekst(!!!)
Zet OrderID overal op numeriek en op long integer, en niet op double zoals in tblBewerkingen.

Voor de berekening zou ik zetten:
nz([tblUren].[hours])*(nz([tblBewerkingsCodes].[tarief])+nz([tblBewerkingsCodes_1].[tarief])+nz([tblBewerkingsCodes_2].[tarief])+nz([tblBewerkingsCodes_3].[tarief])+nz([tblBewerkingsCodes_4].[tarief]))
Dus som van de tarieven, tussen haakjes en die vermenigvuldigen met het aantal uren.
 
opgelost!

Ahhh dat was het! Het werkt!! Hartelijk dank allemaal voor de geboden hulp, anders was ik er nimmer uitgekomen. Super dat het nu opgelost is.

:thumb: scw
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan