Bedrag overnemen uit andere query

Status
Niet open voor verdere reacties.

JoLieKel

Gebruiker
Lid geworden
21 jul 2021
Berichten
9
Ik heb dit forum, en ook andere websites, afgezocht maar heb niet kunnen vinden wat ik zoek.

Ik heb 2 query's => Query_1 en Query_2.
Nu wil ik in Query_1 een bedrag [Kosten] overnemen uit Query_2 [totaal].
Het bedrag [Totaal] in Query_2 moet gezocht worden aan de hand van de code in in Query_1 [Criteria] en overeenkomen met de code in [IDCriteria] in Query_2.
Ik heb een voorbeeld bijgevoegd.
Heb het geprobeerd met de functie Dlookup maar dit geeft niet het gewenste resultaat.
Wie kan mijn hiermee helpen?
Access bedrag overnemen.jpg
 
Plaatje is prachtig, maar daar maak ik geen nieuwe query van. We hebben de database nodig. Of op zijn minst de queries die je nu hebt gemaakt.
 
Beste OctaFish,

Ik heb een eenvoudige database gemaakt om het te verduidelijken.
Wellicht een hele domme vraag maar hoe kan ik deze database hier toevoegen, ik zie wel een button voor een afbeelding of filmpje meer niet om een bestand toe te voegen??
 
Je moet de database eerst even zippen anders wordt het hier niet geaccepteerd. Via Ga geavanceerd kan je de bijlage toevoegen door op de paperclip te klikken.
 
Beste OctaFich en VenA,

Bedankt voor jullie inbreng, hier de database.
Ik heb deze eenvoudig gehouden want het is een onderdeel uit een grotere database.
In Query1 heb ik de kolom [Kosten] opgenomen, ik weet dat de formule niet klopt maar hier moet de kosten in komen die berekend wordt in Query2 [Totaal].
Het bedrag wat opgenomen dient te worden moet gelijk zijn in [Criteria] van Query1 en [IDCriteria] in Qruery2.
 

Bijlagen

  • Bedrag overnemen.rar
    20,9 KB · Weergaven: 18
In mijn optiek steekt jouw voorbeeld database niet logisch in elkaar maar dat was de vraag niet.;) Je hebt maar 1 Query nodig

Knoop Tabel1 aan Tabel2 met een 1 op veel relatie. Voor het optellen van de 2 bedragen heb je geen Nz nodig. Zie plaatsjes of Query3 in het bestand. Een .rar is wat anders dan een .zip en is niet door iedereen te openen.
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    42,7 KB · Weergaven: 38
  • Knipsel1.JPG
    Knipsel1.JPG
    49,3 KB · Weergaven: 28
  • Bedrag overnemen.zip
    25,8 KB · Weergaven: 23
Beste VenA,

Bedankt voor je reactie, het is me nu duidelijk, ik zat veel te moeilijk te denken.
Ik ga er mee aan de gang, mocht ik nog vragen hebben dan kom ik er nog even op terug.
 
En hier is de oplossing (moeilijk denken? :)) met alles in één query.
Code:
SELECT Id, Producten, Inkoop, Criteria, (SELECT Nz([Bedrag 1])+Nz([Bedrag 2])+Nz([Bedrag 3]) FROM Tabel2 WHERE IDCriteria= [Tabel1].[Criteria]) AS Kosten FROM Tabel1;
Je maakt hierbij eigenlijk een nieuw veld aan op basis van een subquery, dat je koppelt aan (in dit geval) het Criterium veld.

Voor het optellen van de 3 bedragen heb je geen Nz nodig.
Da's niet waar. Als je in één van de drie kolommen een waarde weghaalt krijg je in de totaal query lege waarden, omdat je geen Null kan optellen. Je moet dan dus Nz gebruiken. Test deze maar eens tegen de andere die ik hierboven heb neergepend.
Code:
SELECT Id, Producten, Inkoop, Criteria, (SELECT [Bedrag 1]+[Bedrag 2]+[Bedrag 3] FROM Tabel2 WHERE IDCriteria= [Tabel1].[Criteria]) AS Kosten FROM Tabel1;
Geeft duidelijk een ander resultaat.
 
Laatst bewerkt door een moderator:
Bedrag overnemen uit ander query

Beste OctaFish,

De methode van VenA heb ik werkend gekregen, jouw manier wil ik ook leren begrijpen.
Ik heb jouw formule in de query geplaatst maar krijg een foutmelding, "Controleer de syntaxis van de subquery en plaats de subquery tussen haakjes".
Ik heb op goed geluk voor- en achteraan een haakje gezet maar krijg dan weer een andere foutmelding met zoiets als "Bewerk de instructie SELECT van subquery zodat slechts een veld als resultaat kan worden gegeven"
Het zal voor jullie wel heel eenvoudig zijn maar met mijn beperkte kennis hierin weet ik niet waar ik het moet zoeken.
Ik heb de database bijgevoegd Bekijk bijlage Bedrag overnemen 2.zip.
Alvast bedankt voor de moeite die jullie iedere keer nemen om de onwetende te helpen:d
 
Maak maar eens een veld leeg. Ik maak mijn databases foolproof, zodat dit soort fouten niet kúnnen voorkomen. Dat vind ík dus verantwoord databases ontwerpen. Voorkomen is beter dan genezen en zo. Uiteraard mag jij daar anders over denken.
 
Eentip: gebruik nooit subqueries als je het via een join kan doen. Maak er en gewoonte van je queries zo performant mogelijk te schrijven, slechte gewoontes zijn moeilijk af te leren.
 
Ik maak mijn databases foolproof

Door oneigenlijke constructies te gebruiken? In een numeriek veld zal ik foolproof nooit een lege waarde toestaan. De default waarde van de getallen in de tabel staat toch niet voor niets op 0. Maar ja is de de achtpootsectie en dan mag er maar 1 het laatste woord hebben. Verder zoals altijd druk met van alles en toezeggingen waar je weer niet op terug kan komen. https://www.helpmij.nl/forum/showthread.php/960244-Lanceren-verzendingslijst-via-macro?p=6297218&viewfull=1#post6297218
 
De default waarde van de getallen in de tabel staat toch niet voor niets op 0.
Hieruit blijkt dat je bar weinig verstand hebt van het ontwikkelen van databases. Een defaultwaarde van 0 is volslagen idioot in het gebruik. Dat heb je dan overigens gemeen met de ontwikkelaars bij Microsoft…
 
Blijkbaar heb jij een ontzettende plaat voor je kop.
 
Eentip: gebruik nooit subqueries als je het via een join kan doen.
Zolang je er geen last van hebt qua performance, is er niks aan de hand. Werk je met supergrote databestanden, dan zijn er desnoods wel andere opties. Op voorhand bruikbare opties afwijzen? Waarom zou je dat doen?
 
Zoals ik al zei: om geen slechte gewoontes aan te leren. Ik zie het nut niet in om iets maar halfslachtig te doen omdat je er momenteel geen last van hebt. Probeer altijd zo efficiënt mogelijk te werken. Vergelijk het met een slecht database design gebruiken omdat je er nu toch geen last van hebt.
 
Een subquery is geen slechte gewoonte. Om dat zo te stellen, vind ik nogal boud. Dat je in jouw situatie er liever geen gebruik van wil maken, zal mij een worst wezen eerlijk gezegd, maar ik gebruik ze al tot volle tevredenheid meer dan 30 jaar. En nog nooit een klacht gehad. Het is een bruikbare techniek, en die moet je dus niet op deze manier bij het oud vuil zetten. Jouw oplossing met joins is in een hele hoop gevallen niet beter.
 
Ga toch eens verder in al jouw belofte draadjes ipv steeds de betweter uit te hangen tegen andere helpers. Oh nee geen tijd voor. Druk druk druk:eek:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan