Totaal Query 1 als zoekveld Query 2

Status
Niet open voor verdere reacties.

Sickbock

Gebruiker
Lid geworden
14 jul 2012
Berichten
42
Ik maak een access programma waarbij facturen gemaakt gaan worden voor klanten die een aantal artikelen kopen. Afhankelijk van het aantal gekochte artikelen krijgt de klant een bepaald kortingspercentage. Ik heb nu een query gemaakt waaruit alle benodigde gegevens kunnen worden gehaald voor aanmaak van de factuur, gegevens klant, gekochte artikelen, het totaal aantal gekochte artikelen en het totale bruto bedrag. Nu wil ik het kortingspercentage opzoeken m.b.v. een tweede query met als invoer een tabel met kortingspercentages en het totaal aantal gekochte artikelen uit query 1. Het lukt mij echter niet het totaal aantal gekochte artikelen als resultaat van query 1 ingevoerd te krijgen als zoekveld in query 2. Heeft iemand hiervoor een oplossing?
 
Ik snap niets van je werkwijze, dus dat maakt het lastig om een antwoord te geven. Je legt ook je methodiek niet echt uit, en dat helpt natuurlijk ook niet.
Laten we er voor het gemak van uit gaan dat je de factuur voorbereidt op een formulier + subformulier (Factuur + Factuurregels). In de factuurregels leg je vast wat je verkoopt, met de aantallen + prijzen. Bij facturen is het belangrijk dat de vastgelegde gegevens niet meer wijzigen, dus je slaat de actuele prijs op in de tabel Factuurregels. Zodat bij prijswijzigingen de prijzen van de reeds eerder verkochte artikelen niet meer verandert.

Korting kun je geven per artikel, maar jij doet dat blijkbaar op basis van de complete factuur. Dat betekent voor je tabel, dat je de korting (percentage) opslaat in de tabel tFactuur, want de korting is nu een eigenschap van de factuur geworden, niet meer van de factuurregels. Dat betekent dus dat je op je hoofdformulier een veld moet hebben dat de korting ophaalt uit de tabel tKorting. Daarvoor moet je dus interactief het percentage kunnen muteren op dat hoofdformulier. Afhankelijk van het totaal aantal artikelen krijg je een ander percentage immers, als ik het goed heb begrepen.

Dat interactieve veld kun je met een DLOOKUP laten werken op (bijvoorbeeld) een totaal veld dat je in het subformulier in de voettekst zet. Bij elke mutatie in je factuurregels verandert dat totaal, en derhalve ook het percentage op je hoofdformulier. Daar komt verder geen query aan te pas. Zoals gezegd: factuur gegevens leg je vast in je tabellen, dus het kortingspercentage is ook gekoppeld aan een veld in de tabel tFactuur.

Zo zou ik het tenminste doen :).
 
Je probeert volgens mij query 1 als subquery te gebruiken in query 2. Dat zou kunnen maar is de slechts mogelijke manier om een query te bouwen. Vermijd waar mogelijk subqueries en domein functies in queries (geen tip van mij maar van Microsoft en alle andere leveranciers zoals Oracle die met SQL werken).
In feite moet je het resultaat van query 1 linken naar de kortingtabel, of een query gemaakt op de kortingtabel. Zorg dat je in beide queries de primary keys hebt die je nodig hebt en koppel deze. SQL is een taal die het best en snelst werkt met joins, niet met subqueries.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan