Access maandtotalen in een formulier

Status
Niet open voor verdere reacties.

rolfohtar

Gebruiker
Lid geworden
23 aug 2008
Berichten
136
Hallo allemaal,

Situatieschets
  • Ik heb een tabel genaamd tblData
  • Ik heb een formulier genaamd frmData, deze heeft tblData als recordbron. Via dit formulier vul ik de binnengekomen aantallen in, met de velden "Date/ Qty".
  • Ik heb een formulier genaamd frmStats

Gewenste situatie
Ik zou graag in het formulier tblData een overzicht willen maken van de totale binnengekomen aantallen per maand (vanuit tblData). Nu kan ik hier natuurlijk gewoon een rapport van maken, maar dan kan ik er niet meer verder mee rekenen. Ik wil graag de verschillende maanden in velden hebben, zodat ik verder kan rekenen met de maandtotalen.

Nu heb ik de maandtotalen voor elkaar gekregen met een sql query (zie ook bijlage).

Code:
SELECT Format([Date],"mmm yyyy") AS [Month], Sum(tblData.Qty) AS SumOfQty
FROM tblData
GROUP BY Format([Date],"mmm yyyy"), Format([Date],"yyyy mm")
ORDER BY Format([Date],"yyyy mm");

Ik krijg het nu alleen niet voor elkaar de losse waardes in velden te krijgen in een formulier. Helemaal mooi zou zijn wanneer ik ook nog eens het jaar zou kunnen selecteren en dan de gegevens per maand van dat jaar te zien krijg.

Bekijk bijlage Monthly Totals.zip

Ik hoor dat iemand me hiermee kan helpen!
 
Ik snap niet helemaal wat je bedoelt; je formulier is gebaseerd op de records van je brontabel, dus die laat alle records zien. Je queries laten een totaal per datumbereik zien. Die queries kun je toch als subformulier op je hoofdformulier zetten als je de totalen wilt zien? Overigens kun je met een kruistabel waarschijnlijk veel makkelijker je totalen en berekeningen maken.
 
Hallo Michel,
Bedankt voor je reactie.

Je hebt gelijk dat ik de queries als subformulier op mijn hoofdformulier kan laten zien. Alleen kan ik er dan ook mee rekenen? Met andere woorden, kan ik dan die resultaten per maand gebruiken om verdere berekeningen te doen? En hoe?
Het gaat er namelijk om dat ik via een formulier (die idd gebaseerd is op de records en die laten zien) de subtotalen per maand kan laten zien (en die het liefst per jaar indeel). Dan kan ik met die getallen ook jaartotalen maken en het belangrijkste is dat ik met de resultaten daarvan verder kan rekenen om kwartalen te maken en belastingaangifte kan berekenen.

Kruistabellen weet ik verder niets van, daar ga ik nu even naar kijken.
 
Hallo Michel,

Ik heb het geprobeerd met een kruistabel en dan krijg ik inderdaad wat ik eruit wil hebben! Bedankt daarvoor.

Ik heb een mooi voorbeeldje gevonden van iemand. Daarin heb ik de volgende kruistabelquery opgebouwd:
Code:
PARAMETERS StartDate DateTime;
TRANSFORM Sum([UnitPrice]*[Quantity]*(1-[Discount])) AS Sales
SELECT Orders.ShipCountry
FROM Orders INNER JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID
WHERE (((Orders.OrderDate)>=[StartDate]))
GROUP BY Orders.ShipCountry
PIVOT Year([OrderDate])*12+Format([OrderDate],"mm")-(Year([StartDate])*12+Format([StartDate],"mm"))+1 In (1,2,3,4,5,6,7,8,9,10,11,12);

Wanneer ik via een knop de volgende VBA code activeer dan krijg ik een popupje [StartDate] waarin ik de startdatum moet invullen.
Code:
Private Sub cmdPreview_Click()
  ' Handle Cancel if user doesn't enter start date
  On Error Resume Next
  DoCmd.OpenReport "rptSalesByMonth", acViewPreview
  If Err.Number = 0 Then
    DoCmd.Maximize
  End If
End Sub
Wanneer ik deze heb ingevoerd, dan krijg ik heel mooi 12 maanden te zijn vanaf die datum.

Nu wil ik graag in een form het veld [StartDate] maken en daar de datum invullen die wordt doorgegeven aan de query, zodat ik geen popupje meer krijg. Hoe doe ik dat?
 
Staat in de cursus :)
 
Sorry, ik kom er niet uit hoe ik het veld [StartDate] op een formulier doorgeef aan de kruistabelquery.
 
Tipje iets verder opgelicht: Hoofdstuk 13 van de Access cursus.
 
Hoi bedankt voor je reactie en hulp. De handleiding heb ik gevonden alleen ik kom er alsnog echt niet uit.
In de bijlage zit het bestand voor tot zover ik het voor elkaar heb. Zou je me verder kunnen helpen om het voor elkaar te krijgen?

Bekijk bijlage MonthlyReport.rar
 
In het eerste draadje (dat bij de cursus hoort) zitten bijlagen met de uitwerking. Ik zou zeggen: bestudeer die eens :).
Jouw filter zal nooit werken, omdat je niet goed op datum filtert. Dat zou er ongeveer zo uit moeten zien:
Code:
Dim StartDatum As Date
Const strcJetDate = "\#mm\/dd\/yyyy\#"  'Do NOT change it to match your local settings.

strDateField = "[OrderDate]"
If IsDate(Me.StartDate.Value) Then
	sFilter = sFilter & "(" & strDateField & " >= " & Format(Me.StartDate.Value , strcJetDate) & ")"
End If

If IsDate(Me.EndDate.Value) Then
	If sFilter <> vbNullString Then sFilter = sFilter & " AND "
	sFilter = sFilter & "(" & strDateField & " < " & Format(Me.EndDate.Value + 1, strcJetDate) & ")"
End If
DoCmd.OpenReport "rptSalesByMonth", acViewPreview, , sFilter
 
Thnx, ik heb het gevonden. Ik ga daar even mee stunten en hoop dat ik eruit kom :)
 
Succes, laat effe weten of het gelukt is en hoe, voor anderen.......
 
Ik zou nog even laten weten of het was gelukt. Helaas is dit niet het geval. Ik kom er gewoon niet uit, ik weet van dit onderdeel gewoon te weinig af om het werkend te krijgen.
 
Dan zou ik zeggen: post je db er weer eens bij, zodat we kunnen zien hoe ver je bent gekomen. Kunnen we je weer een stukje verder duwen...
 
Ik hoop dat je snapt wat er allemaal gebeurt.... Op je formulier <frm_Belastingaangifte> verwijs je in de code naar Me.lstReportFilter. En die staat daar niet. Dat geeft uiteraard een foutmelding.
Code:
    If Nz([B]Me.lstReportFilter[/B]) <> "" Then
        strReportFilter = "([SalesGroupingField] = """ & Me.lstReportFilter & """)"
    End If
 
Half. Ik begrijp dat er wat fouten inzitten met verkeerde verwijzingen. Ik heb geprobeerd het voorbeeld van Noorderwind aan te passen. Daar is een extra box waarin je het rapport selecteert en een filter kan selecteren. Genaamd lstReportFilter. Het aanpassen is niet echt gelukt ;).

Ik heb gewoon 1 rapport nodig die me de sales per klant per maand geeft (tbl_Inkomsten_Kruistabel) voor de periode die ik in frm_Belastingaangifte kan specificeren. Daar zit ik mee in de knoop.
 
Zowiezo moet je alle code die niet nodig is opmaken als commentaar, of verwijderen. Nu loopt hij mee, en werkt hij niet. Dat schiet niet op... Overigens gebeurt hetzelfde met <lstSalesReports>. Kan zeker ook weg?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan