Dsum functie

Status
Niet open voor verdere reacties.

HJD1986

Gebruiker
Lid geworden
28 mrt 2017
Berichten
61
Beste forumleden,

Ik ben op zoek naar de oplossing om het volgende te realiseren:

Ik heb een formulier [offertes] met daarin een subformulier [offerte-inhoud]. In het subformulier worden Artikelen geselecteerd uit de tabel [Artikelen].
De tabel artikelen bevat inkoopprijs, verkoop prijs etc.

Nu wil ik in het formulier [Offerte] het totaal berekenen van de marge van de artikelen in het subformulier [offerte-inhoud].
Ik weet inmiddels dat dit zou moeten kunnen met de Dsum functie, maar krijg de berekening niet werkend.

Als bijlage heb ik een Dummy database bijgevoegd.

Is er iemand die de oplossing heeft?
 

Bijlagen

Nee, Dsum komt in mijn oplossing nergens voor. Die mag noella laten zien, die is daar gek op :)
 

Bijlagen

Hi Octafish,

Heb ik iets gemist?
Wat zou jouw oplossing dan zijn?
 
Heb je mijn db wel geopend?
 
Uh nee Octafish. Sorry, ik had het bestandje niet gezien om mijn kleine telefoonscherm :d:thumb:

Ontzettend bedankt weer voor je hulp!! Dit is een stuk eenvoudiger ;-)

Groet,

Hugo
 
Je kan hem op een telefoon sowieso niet openen vermoed ik. Mooi dat je het kan gebruiken zo :). Ik gebruik eigenlijk nooit tabel weergave in subformulieren, maar maak altijd een doorlopend formulier. Daar kan je veel meer mee, en je hebt betere controle.
 
Beste forumleden,



Nu wil ik in het formulier [Offerte] het totaal berekenen van de marge van de artikelen in het subformulier [offerte-inhoud].
Ik weet inmiddels dat dit zou moeten kunnen met de Dsum functie, maar krijg de berekening niet werkend.

Ik zou toch ook graag de oplossing willen hebben o.b.v. Dsum functie. Noella kan jij me dit misschien uitleggen?
 
Hallo,

op deze PC (is mijn vrijetijds - gaming PC) heb ik Access niet opstaan, maar ik kan wel wat algemene info geven over de domein functies in Access. Als deze uitleg niet duidelijk is zal ik morgen vanop mijn werk PC zien of ik een voorbeeld met jou database kan maken. Ik weet alleen niet of ik tijd ga hebben, want na de Corona-pauze beginnen alle projecten zo stilaan terug opgestart te worden en werk gaat natuurlijk voor.

Domein functies maken een berekening (DSum, DAverage, DMax, DMin) over of zoeken een gegeven op in een bepaald gebied (= domein). In feite doen de vergelijkbare functies in Excel (sum, average, max, min, dlookup of vlookup) hetzelfde: ze maken een berekening of zoeken een waarde in een bereik (= domein) dat jij aangeeft.
Alleen kan je in access geen celbereik aangeven, maar moet je aangeven welke gegevens je wil gebruiken door te zeggen welke kolom uit welke tabel je wil gebruiken in je berekening. Je kan dit domein dan verfijnen door een selectie criterium aan te geven, bv. gebruik alleen de die waarden van de records waarvan de orderID gelijk is aan de orderID die momenteel in dit formulier gebruikt wordt.

Syntax:
D[FunctionName]("Fieldname";"Domain","Criteria")

de argumenten staan tussen aanhalingstekens omdat ze als een string moeten doorgestuurd worden.

bv. DSum("TotalPrice";"OrderLines";"OrderID = 1")

geeft u de som van alle verkoopsprijzen in het veld TotalPrice van de tabel OrderLines van de orderlijnen voor het order met ID = 1

Natuurlijk wil je geen vast OrderID opgeven, dus als je het totaal wil voor de orderlijnen van het order dat momenteel op het formulier getoond, moet je dat buiten de aanhalingstekens brengen:

DSum("TotalPrice";"OrderLines";"OrderID = " & me.txtOrderID)

Je kan domeinfuncties ook in queries gebruiken, maar dit is af te raden omdat je dan een full table scan moet doen voor het domein in de functie voor elk record van het query resultaat. Dus als je 100 lijnen in het resultaat hebt en de tabel Orderlijnen heeft 500 lijnen moet je 100 keer 500 lijnen bekijken, wat niet efficiënt is.

Ik hoop dat dit een beetje duidelijk is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan