Avatar billede mix8xim Nybegynder
03. december 2011 - 01:10 Der er 7 kommentarer og
1 løsning

Hent sum i underformular til anden underformular

Jeg har en Hovedformular, "Tilbud", den har en underformular "Tilbudsliste" som igen har en underformular "Opgave".

I "Opgave" har jeg et felt der hedder [pris]. Jeg ønsker at lave en sum af [pris] og vise den for hver post i "Tilbudsliste".

Hvordan gør jeg det ?
Avatar billede neoman Novice
03. december 2011 - 12:39 #1
Du kan ikke summe på de viste data direkte, da der kun kan summes over det der er vist i Opgaver (hvilket er bestemt af hvad current record er i Tilbudsliste).

I den query som er Record Source for Tilbudsliste, kunne du tilføje et beregnet felt med Dsum(af det som nu interesserer dig i det record set som er Record Source for Opgaver, filtreret på passende vis)
Avatar billede mix8xim Nybegynder
03. december 2011 - 17:40 #2
P.t. har jeg en løsning hvor jeg bruger Dlookup i et tekstfelt til at slå summen op i en forespørgsel. Det kører langsomt og på nogle pc'er skriver den fejl hvorefter man skal opdatere indtil flere gange inden man kan se de fundne data.

Vil Dsum kunne løse opgaven bedre ?
Avatar billede terry Ekspert
04. december 2011 - 10:30 #3
as neoman says you could use dsum in the query used for the record source to Tilbudsliste, you could also use a sub query wich I think may be faster than dsum, but you should test it  of course.

You say.
P.t. har jeg en løsning hvor jeg bruger Dlookup i et tekstfelt til at slå summen op i en forespørgsel


If I am guessing correctly you are doing this for each row in the sub form tilbudsliste. This will be running the query for each row in the sub form.

By doing the calculation in the query would be faster.
Avatar billede gcdesign Nybegynder
08. december 2011 - 15:42 #4
I formularen opgaver kan du oprette en tekstboks i formularfoden med navnet txtSum og Indholdet =Sum[Pris] og derefter skjule formularfoden.

I formularen tilbudsliste opretter du et tekstfelt med indholdet =[Tilbudsliste]![txtSum]
Avatar billede mix8xim Nybegynder
20. december 2011 - 22:44 #5
gcdesigns løsning er kun mulig såfremt du har een underformular.

Jeg har en hovedformular, så en underformular og en "underunderformular" i ovenstående eksempel.

Jeg har søgt en løsning på dette problem de sidste tre år, så først en tak til Neoman, for at gøre mig opmærksom på at det ikke er muligt at summere med flere underformularer.

Den løsning jeg er kommet frem til er relativt kompliceret, men overordnet følger den følgende princip.

Jeg har tre niveauer:
1. Tilbud
2. Tilbudsliste, underformular til tilbud
3. Opgave, underformular til tilbudsliste

1. Jeg har oprettet feltet "sum" i tabel "tilbud" og tabel "tilbudsliste"
2. Jeg har oprettet en forespørgsel der beregner summen af feltet "pris" på tilbudsliste niveau og herefter på tilbud niveau.
3. I formularen har jeg lavet en knap, der ved klik, henter værdierne fra forespørgslerne og indsætter dem i "sum" på hvert enkelt niveau. Der sker altså ikke en automatisk beregning.

Jeg har konstrueret ovenstående således at det kun er de felter der er ændret, der opdateres med en ny sum. Denne metode betyder at der ikke anvendes Dlookup når formularen indlæses, og det har øget hastigheden meget og fejlmeddelserne er væk :o) !!!! Fantastisk!

Tak for hjælpen til jer alle!!
Avatar billede mix8xim Nybegynder
20. december 2011 - 22:47 #6
Der er sket en fejl med pointgivning, Neoman skal ha' de 200 point, men hvordan gør vi det ?
Avatar billede gcdesign Nybegynder
21. december 2011 - 08:40 #7
Jeg har ikke modtaget point. Hvis det er du mener.
Avatar billede terry Ekspert
21. december 2011 - 19:03 #8
mix8xim you can only give points to someone who has placed an answer, in this case only yourself.

If neoman shoul dhave been given the points then place a new question with reference to this one and wait until neiman places an answer which you can then accept
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester