Ga naar inhoud

dringende vraag Access SQL/VBA?!


Aanbevolen berichten

Ik ben een bepaalde database aan het maken.

Nu, het zit zo:

In deze database is er de mogelijk om de pakketten samen te stellen voor de klanten, de bedrijven die sponsoren dus.

Dus stel: er is een bedrijf en dat sponsort 10000 euro. Dan wordt in het formulier frmInschrijvingPakket via een subformulier SubfrmInschijfinhoudPakket het pakket samengesteld. Elk artikel heeft een prijs. De optelling wordt dan gemaakt bij het kiezen van de verschillende artikelen in dat pakket (Bijv.: 2 keer een matchbal is dan 2 x 2500 euro, 1 x advertenties in de sportinger, is dan die prijs erbij, een beetje boarding bijv. en dan menu’s.) Menu kost normaal 46 euro en dan het aantal.

De artikelen worden opgeteld en stel dat we aan een bedrag komen van 10870 euro (Bedrag Pakket). Dan krijgt die klant automatisch korting en dat wordt daarin gezet. Een korting verdeeld op al deze gekozen artikelen (elk evenveel), MAAR er mag GEEN korting op de menu’s worden gegeven. Dus dit mag niet in die berekening mee zitten. Het uiteindelijke bedrag dat moet betaald worden is sowieso dat sponsorbedrag van 10000 euro (uiteraard allemaal nog zonder btw). Dus op elk artikel komt een korting van zoveel %, die bedragen + het bedrag van de menu’s (zonder korting) moet dan aan 10 000 euro komen.

Ik had al allerlei berekeningen gemaakt om dit te doen kloppen, met =IFF([Artikelgroep]=2;……), maar toch is er telkens iets verkeerd.

NU denk ik dat het enkel echt kan kloppen als we dan het sponsorbedrag verminderen met het bedrag van de menu’s. Dat heb ik in Sponsorbedragmenu gezet. Maar dan zouden we het bedrag van het pakket ook moeten verminderen met het bedrag van de menu’s om deze berekening te kunnen laten kloppen. Maar daar is iets dat maar niet wil kloppen in mijn berekening.

Wellicht is het met VB vrij snel op te lossen. Maar ik weet niet of dit op korte tijd is op te lossen.Ik had een oplossing, maar: Ik kan blijkbaar in een subformulier geen 1 query's samenvoegen --> dat lukt wel, maar dan kan ik mijn keuzelijsten daarin niet meer gebruiken!

Het is kort dag? zou dit tegen morgen willen opgelost hebben.

Wie heeft ideeën?

Contacteer me en ik stuur de database via WeTransfer door.

Het is moeilijk om mijn probleem hier uit te leggen. Ik zie dat er wel mensen komen kijken, maar dat er geen reacties binnenkomen, omdat mijn probleem wellicht niet concreet genoeg is. Als iemand toch echt wil helpen, please, stuur dan iets, ik doe het nodige om het concreet uit te leggen en te tonen. Maar ik kan mijn database hier niet tonen wegens te groot.

Ik heb qryPakketInhoud

Dit is de sql:

SELECT tblInschrijfinhoudPakket.[inschrijving PakketID], tblInschrijvingPakket.Datum, tblKlanten.Naam, tblInschrijvingPakket.KlantID, tblArtikelen.OmschrijvingNL, tblInschrijfinhoudPakket.PakketID, tblArtikelen.Artikelcode, tblArtikelen.Verkoopprijs AS Dagprijs, tblArtikelen.Seizoenprijs, tblArtikelen.[Prijs/maand], tblArtikelen.[Abonnement/prijs], IIf([Dagprijs] Is Null,0,[Dagprijs]*[Aantal]) AS [Tot dagprijs], IIf([seizoenprijs] Is Null,0,[seizoenprijs]*[Aantal]) AS [Tot seizoenprijs], IIf([Prijs/maand] Is Null,0,[Prijs/maand]*[Aantal]) AS [Tot maandprijs], IIf([abonnement/prijs] Is Null,0,[Abonnement/prijs]*[Aantal/abon]) AS [Tot abonnementsprijs], tblInschrijfinhoudPakket.Aantal, tblInschrijfinhoudPakket.[Aantal/Abon], [Tot dagprijs]+[Tot seizoenprijs]+[Tot Maandprijs]+[Tot abonnementsprijs] AS Totaal, tblInschrijfinhoudPakket.Opmerking, tblInschrijfinhoudPakket.BoardingplaatsID, tblBoarding.[Prijs/m], tblBoarding.[Lengte (in m)], IIf([Prijs/m] Is Null,0,[Prijs/m]*[Lengte (in m)]) AS [Prijs boarding], [Totaal]+[Prijs Boarding] AS Subtotaal, tblArtikelen.BTWPercentage, [subtotaal]/100*[tblArtikelen.BTWPercentage] AS [btw-bedrag], tblInschrijvingPakket.[Aantal seizoenen], tblInschrijvingPakket.Sponsorbedrag, tblArtikelen.Artikelgroep, IIf([Artikelgroep]=2,[sponsorbedrag]-[subtotaal],0) AS SponsorbedragMenu, tblArtikelgroepen.[Korting toegelaten?]

FROM tblArtikelgroepen INNER JOIN (tblArtikelen INNER JOIN (tblBoarding RIGHT JOIN ((tblKlanten INNER JOIN tblInschrijvingPakket ON tblKlanten.ID = tblInschrijvingPakket.KlantID) INNER JOIN tblInschrijfinhoudPakket ON tblInschrijvingPakket.[inschrijving PakketID] = tblInschrijfinhoudPakket.[inschrijving PakketID]) ON tblBoarding.BoardingID = tblInschrijfinhoudPakket.BoardingplaatsID) ON tblArtikelen.ID = tblInschrijfinhoudPakket.PakketID) ON tblArtikelgroepen.ID = tblArtikelen.Artikelgroep

WHERE (((tblArtikelen.Artikelgroep)=1 Or (tblArtikelen.Artikelgroep)=2));

Maar dan heb ik in SubfrmInschrijfinhoudPakket:

subfrm.jpg

Maar daar zit dus de fout!

Eigenlijk heb ik volgende zaken hierbij nodig:

Uit qryTotalenPAkketZonderMenu’s:

qry1.jpg

Dit geeft de juiste procenten weer van wat van elk artikel mag worden afgetrokken. MAAR dit mag niet op artikels uit artikelgroep 2 (dus menu’s e.d.)

qryTotalenPakektZonderMenu’s is gebaseerd op qryBedragenZonderMenu’sTest

qry2.jpg

Nu: ik had beide query’s: qryPakketInhoud en qryTotalenPakketZonderMenu’s samen in een subformulier gezet. Dit kon me de juiste %-en bezorgen. Maar dan werken mijn keuzelijsten daarin niet. Dus dat is geen optie.

Op de moment heb ik al zovele berekeningen en zaken gedaan, dat ik het ofwel te moeilijk aan het maken ben nu.

Eigenlijk zou ik in qryPakketInhoud moeten kunnen zeggen dat er korting wordt berekend op alles behalve op de menu’s. Dus we hebben daar dan een Totaal pekket, en een Sponsorbedrag. Dus da’s moet dat Sponsorbedrag – het bedrag van de menu’s gaan en het totale pakket ook – bedrag van de menu’s. En dan wordt het aantal % berekend via dat (zie bijv. frmOverzichtPakkettenKlanten  daar staat aantal % juist in)….. maar als er een menu wordt gekozen in de lijst, dan moet het % bedrag altijd 0 zijn. Dan is er geen korting.

Hopelijk is dit iets duidelijker.

Bedankt!

Bedankt!

aangepast door Skylinertje
concreter gemaakt
Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.