querie en formulier en rekenen

Status
Niet open voor verdere reacties.

Janzan

Gebruiker
Lid geworden
10 jan 2012
Berichten
61
Hallo allemaal,

Ik heb een vraag.
Ik hen een formulier met wat tekstvelden in de koptekst waar ik de criteria's kan ingeven voor een selectiequerie.
In de details sectie van dat formulier heb ik een subformulier(gegevensblad) waar de selectie resultaten verschijnen.
In die records zitten ook een veld aantal, en een veld opbrengst.
Nu wil ik graag in de voettekst van het hoofdformulier 3 tekstvelden maken waar in veld 1 een totaal komt van het recordveld aantal.
En een veld met het totaal van het recordveld opbrengst.
In het derde veld wil ik dan de gemiddelde opbrengst per eenheid berekenen.
Ik moet dus van de selectie de aantallen in het veld aantal optellen, en het totaal weergeven in het tekstveld in de voettekst van het formulier.
Hoe moet ik dat aanpakken?
Moet er een formule in het tekstveld komen, iets als sum subform veld aantal?

Wil wil mij even op weg helpen?

b.v.b dank
 
Vraag: waarom heb je een subformulier in de detailsectie gemaakt?
 
Zomaar eigenlijk, ik ben net een beetje bezig met Acces maar als het op een andere manier beter gaat, dan is het ook prima.
Ik begrijp nu dat het subformulier niet nodig is en dat ik het hoofdformulier afhankelijk moet maken van de qurey?
En hoe tel ik de gegevens op in het tekstveld?

b.v.b dank
 
Je spreekt van een hoofdformulier als je een formulier hebt met een Recordbron, en op dat formulier een subformulier met een (meestal aan het hoofdformulier gekoppelde) andere bron. In jouw geval kun je met een normaal (doorlopend vermoed ik) formulier volstaan. Niet alleen simpeler te maken, de formules die je nodig hebt worden ook zo'n 300% makkelijker :)
 
Dat eenvoudige moet het worden dan!
En welke formules kan ik gebruiken?, heb je een voorbeeld?

b.v.b dank
 
Als je een normaal doorlopend formulier hebt, met het veld Aantal, kun je in de kop of voettekst de formule maken =Som([Aantal]). En die telt dan de aantallen op. Hetzelfde met het veld Opbrengst: hierin de formule =Som([Opbrengst]). De twee velden gebruik je vervolgens om het gemiddelde te berekenen.
 
Oke!, dan ga ik het zo doen.
Rest mij nog 1 vraag en dan is mijn access project klaar.
Ik heb in de koptekst dus de tekstvelden staan waar ik de criteria voor de query ingeeft.
Dat werkt allemaal prima, behalve 1 ding.
Als ik nu in een van de tekstvelden geen criteria ingeeft, dan komen er geen resultaten.
Vanuit het verleden weet ik dat het mogelijk is om dat te ondervangen, dus als er in een veld geen criteria ingegeven wordt dan mag er van alles staan in het betreffende veld in de tabel.
Dus als er in het tekstveld AA wordt opgegeven verschijnen er ook alleen maar records waar AA in dat veld staat.
Als er niet wordt opgegeven dan wordt er niet gekeken wat er in het tekstveld staat en gelden alleen de criteria van de tekstvelden waar we iets is ingegeven.
Het was iets met "*" en dan nog wat volgens mij...
Ik ga die handleiding die hier ook online staat eens goed doornemen
In ieder geval hartelijk dank voor je aanwijzingen!
 
Er zijn verschillende mogelijkheden. De manier die je aangeeft beschouw ik als de minst bruikbare; ik hou niet van wildcards in een filter. Ik negeer, als dat mogelijk is, het filter van het lege tekstvak door de tekstvakken te checken of er wat in staat of niet voordat ik ze in de filterstring zet, of, als je het criterium in de query maakt, gebruik ik een extra filter veld met een formule, ongeveer zoals dit:
Code:
IIf(IsNull([Forms]![FormulierNaam]![Tekstveld]);Waar;[Uitslagen].[Tekstveld]=[Forms]![FormulierNaam]![Tekstveld])
met als criterium <>Onwaar.
Hierbij wordt dus gekeken of het tekstveld leeg is of niet. Is het leeg, dan is de uitkomst van de IIF WAAR, anders is de uitkomst: filteren op het tekstveld. Het criterium <>ONWAAR laat dus alles zien dat WAAR is (tekstveld is leeg) of een tekst (Formulierveld checken op tekst).
Overigens zou ik deze constructie bij tekstvelden nooit gebruiken, maar alleen bij keuzelijsten. Je krijgt in dit geval alleen records te zien waarvan de volledige tekst van het veld gelijk is aan het vergelijkingsveld. Bij tekstvelden is dat maar zelden het geval, bij keuzelijsten geldt dat per definitie altijd.
 
Zo...dit gaat mij even boven de pet....heb je misschien een heel klein voorbeeldje in een access bestandje?
Zodat ik het kan zien hoe het in elkaar steek.

b.v.b hartelijk dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan