Hey allemaal,
Ik ben bezig een formulier te maken waarin staat welke leverancier wat heeft geleverd aan welke locatie over een bepaalde periode, en daar het totaal van.
Bijvoorbeeld: tussen 01-01-2008 en 01-02-2008 heeft Leverancier Henk 500 ton zand in totaal geleverd (laten we zeggen dat er 5 leveringen van 100 zijn geweest) aan Rotterdam.
Het moet een totaal overzicht worden van alle leveringen. Een aantal leveranciers mogen er niet in komen te staan en als er een factuur ontvangen is van een bepaalde levering mag die er ook niet in komen te staan.
Mijn probleem lijkt erg op dingen die ik in eerdere topics heb aangekaart en ben dus al daarmee aan de slag gegaan.
Ik heb eerst een query gebouwd die alle informatie bevat die ik nodig heb. Dat is deze geworden:
Vervolgens stel ik mijn condities via een knop op het formulier in. De VBA hiervan is deze:
De code loopt helaas niet.
Ik vraag mij af of het niet handiger is om de hele SQL te baseren op de tabel AlleOrders waar de informatie uiteindelijk vandaan gehaald moet worden. Ik heb dat nu niet gedaan om dan meteen met namen ipv codes te gaan werken maar goed dat kan ik ook op het formulier zelf instellen.
Ook vraag ik mij af hoe en waar ik de sommatie moet instellen. Is dat handig om dat in de query te doen of in de VBA? Het is mij opgevallen dat als ik de datum functie aan heb staan de som niet goed over de hele periode sumt maar over iedere dag apart wat niet de bedoeling is. Enige tips, suggesties
Ik ben bezig een formulier te maken waarin staat welke leverancier wat heeft geleverd aan welke locatie over een bepaalde periode, en daar het totaal van.
Bijvoorbeeld: tussen 01-01-2008 en 01-02-2008 heeft Leverancier Henk 500 ton zand in totaal geleverd (laten we zeggen dat er 5 leveringen van 100 zijn geweest) aan Rotterdam.
Het moet een totaal overzicht worden van alle leveringen. Een aantal leveranciers mogen er niet in komen te staan en als er een factuur ontvangen is van een bepaalde levering mag die er ook niet in komen te staan.
Mijn probleem lijkt erg op dingen die ik in eerdere topics heb aangekaart en ben dus al daarmee aan de slag gegaan.
Ik heb eerst een query gebouwd die alle informatie bevat die ik nodig heb. Dat is deze geworden:
Code:
SELECT Bedrijfsonderdelen.Bedrijfsonderdeel, Leverancier.Leverancier, Producten.Product, Sum(AlleOrders.Hoeveelheid) AS SomVanHoeveelheid, AlleOrders.LeverancierID, AlleOrders.[Factuur ontvangen], AlleOrders.Datum
FROM Leverancier INNER JOIN (Bedrijfsonderdelen INNER JOIN (Producten INNER JOIN AlleOrders ON Producten.ProductID = AlleOrders.ProductID) ON Bedrijfsonderdelen.LocatieID = AlleOrders.LocatieID) ON Leverancier.LeverancierID = AlleOrders.LeverancierID
GROUP BY Bedrijfsonderdelen.Bedrijfsonderdeel, Leverancier.Leverancier, Producten.Product, AlleOrders.LeverancierID, AlleOrders.[Factuur ontvangen], AlleOrders.Datum;
Vervolgens stel ik mijn condities via een knop op het formulier in. De VBA hiervan is deze:
Code:
Dim strTabel As String
strTabel = "[Totalen op Datum]"
strSQL = "Select * From " & strTabel & vbCrLf _
& "WHERE (([Datum])>=#" & Me.Startdatum.Value & "# And ([Datum])<=#" & Me.Einddatum.Value & "#)" _
& "And ([Factuur ontvangen]=False" _
& "And ([LeverancierID]<>5 Or [LeverancierID]<>6 Or [LeverancierID]<>7 Or [LeverancierID]<>8 Or [LeverancierID]<>9)"
Me.RecordSource = strSQL
Me.Requery
De code loopt helaas niet.
Ik vraag mij af of het niet handiger is om de hele SQL te baseren op de tabel AlleOrders waar de informatie uiteindelijk vandaan gehaald moet worden. Ik heb dat nu niet gedaan om dan meteen met namen ipv codes te gaan werken maar goed dat kan ik ook op het formulier zelf instellen.
Ook vraag ik mij af hoe en waar ik de sommatie moet instellen. Is dat handig om dat in de query te doen of in de VBA? Het is mij opgevallen dat als ik de datum functie aan heb staan de som niet goed over de hele periode sumt maar over iedere dag apart wat niet de bedoeling is. Enige tips, suggesties