Avatar billede dennispc Nybegynder
31. oktober 2004 - 19:22 Der er 25 kommentarer og
1 løsning

Beregn sum og vis i textbox på form

Jeg skal have beregnet en sum af af alle ordrelinier's total og vist i et textfelt på formularen.

Hvordan gøres dette ?

Jeg har forsøgt med en simpel : =Sum([OrderLinie]![Pris Ialt]) , men så står der blot "fejl" i feltet...
Avatar billede terry Ekspert
31. oktober 2004 - 19:42 #1
=Dsum("[Pris Ialt]", "OrderLinie")
Avatar billede terry Ekspert
31. oktober 2004 - 19:44 #2
You may need to use
=Dsum("[Pris Ialt]"; "OrderLinie")
Avatar billede dennispc Nybegynder
31. oktober 2004 - 20:30 #3
Ok jeg skylder vist lidt mere forklaring...

Jeg har en formular med en underformular bundet sammen af OrderID.

Det er så kun Sum af pris Ialt på orderlinier der har orderID = den aktuelle order.
Avatar billede dennispc Nybegynder
31. oktober 2004 - 20:31 #4
Do you want me to write in english or is Danish ok ?
Avatar billede terry Ekspert
31. oktober 2004 - 20:31 #5
danish is just fine :o)
Avatar billede terry Ekspert
31. oktober 2004 - 20:34 #6
didnt you get an answer in your previous question?
Avatar billede terry Ekspert
31. oktober 2004 - 20:37 #7
=Dsum("[Pris Ialt]"; "OrderLinie", "OrderID = " & Me.ID)

or something like that
Avatar billede dennispc Nybegynder
31. oktober 2004 - 20:37 #8
Nej det kan jeg ikke få til at virke... vil dit udtryk ikke også kun vise total af alle orderlinier's "pris ialt" ?
Jeg skal jo kun bruge dem fra underformularen(orderlinier) der har orderID= hovedformularens OrderID
Avatar billede dennispc Nybegynder
31. oktober 2004 - 20:38 #9
ok hvor præcis vil du skrive dit udtryk ? det skal gerne opdateres hvis der tilføjes ekstra orderlinier til ordren...
Avatar billede terry Ekspert
31. oktober 2004 - 20:45 #10
I have had a look at your previous question. Do you have a field in ALL "OrdreLinie" containing the [Pris Ialt] for each?

If so, then you should be able to have a text field on the main form where the control source parameter =
= =Dsum("[Pris Ialt]"; "OrderLinie", "OrderID = " & Me.ID)
where OrderID is the foreign key in "OrderLinie" and Me.ID is the primary key in the table on the main form. (The fields linking the master and child forms)
Avatar billede terry Ekspert
31. oktober 2004 - 20:46 #11
=Dsum("[Pris Ialt]"; "OrderLinie", "OrderID = " & Me.ID)
Avatar billede terry Ekspert
31. oktober 2004 - 20:52 #12
When you add/alter a new record to the sub form you will also need to refresh the text field.

In the sub forms after update event, and maybe the On Delete event too, you will use something like

Me.Parent.YourTextFieldContainingTotalForOrder.Requery
Avatar billede dennispc Nybegynder
31. oktober 2004 - 20:58 #13
Jeg tror vi er tæt på nu, jeg kan sagtens forstå hvad du prøver på...
Men jeg kan ikke indtaste din kode i "KontrolElement Kilde" feltet for textboxen
Avatar billede terry Ekspert
31. oktober 2004 - 21:00 #14
Do you get an error, or is the field read only?
If yoy get an error, what is it?
Avatar billede terry Ekspert
31. oktober 2004 - 21:01 #15
You must also make sure that the field names are correct
Avatar billede dennispc Nybegynder
31. oktober 2004 - 21:07 #16
jeg tror det er DSum den ikke kan forstå....
Jeg har indsæt din kode i subform.activate, så burde feltet blive beregnet når jeg tilføjer, men jeg får en compile fejl:
Expected: line number or label or statement or end of statement

Jeg har kontrolleret alle navne nu og den ser ud som følger:

Private Sub Form_Activate()
=Dsum("[Pris Ialt]"; "OrdreLinier", "Ordre-id = " & Me.OrdreID)
End Sub
Avatar billede dennispc Nybegynder
31. oktober 2004 - 21:08 #17
kom lige i tanke om at feltet "Pris Ialt" er et beregnet felt på subformen - har de nogen betydning ?
Avatar billede terry Ekspert
31. oktober 2004 - 21:10 #18
You need an UNBOUND text field on the main form. In the text fields "Control Source"

you write

=Dsum("[Pris Ialt]"; "OrdreLinier", "[Ordre-id] = " & Me.OrdreID)

NOTE [Ordre-id]
Avatar billede terry Ekspert
31. oktober 2004 - 21:13 #19
If it is a calculated field (beregnet felt) then you cant do it this way.

Can I see the code you are using for that?
Avatar billede dennispc Nybegynder
31. oktober 2004 - 21:16 #20
Ok der kommer også en syntax fejl.
Er du sikker på man kan indtaste Dsum i "Control Source" ?

Jeg er lige begyndt med Access, så jeg ved det ikke....
Avatar billede dennispc Nybegynder
31. oktober 2004 - 21:17 #21
ok koden til at beregne feltet ser således ud:

Private Sub Antal_BeforeUpdate(Cancel As Integer)
Me![Pris Ialt] = Me!Antal * Me!Pris
End Sub
Avatar billede terry Ekspert
31. oktober 2004 - 21:20 #22
OK, but you DO have a field in the table named [Pris Ialt]?

So Dsum should work.

Its getting late, so if you can send me your dB then perhaps I canm do it for you. Otherwise I'm afraid you will have to wait!
eksperten@NOSPAMsanthell.dk
remove NOSPAM
Avatar billede terry Ekspert
31. oktober 2004 - 21:26 #23
OK, I think I can see an error in the code!

=Dsum("[Pris Ialt]"; "OrdreLinier"; "[Ordre-id] = " & Me.OrdreID)

make sure you use ; as the delimiter and if that doesnt work change it to ,

If your regional settings are Danish then you will use ; and English ,
Avatar billede terry Ekspert
31. oktober 2004 - 21:26 #24
I'm gone for about 15 minutes
Avatar billede dennispc Nybegynder
31. oktober 2004 - 22:07 #25
Jeg fik løst problemt med lidt hjælp fra kæresten...
Løsningen blev at tilføje et textfelt til subformen der beregnede total vha
=Sum([Pris Ialt]) herefter satte vi den nye textbox på hoved formen = værdi af nyt felt på subform. tilsidst satte vi "visable"=false på feltet på subformen.

Ikke en pæn løsning, men det virker !

Det skal siges at din syntax i dit sidste svar ikke gav compile fejl så DSum kan godt bruges, dog fik jeg bare en "#fejl" i feltet som skulle vise totalen

Jeg acceptere dit svar, da du har prøvet ihærdigt at hjælpe mig.

Tak for hjælpen
Avatar billede terry Ekspert
31. oktober 2004 - 22:12 #26
Thanks. I'm not sure why it doesnt work, but if your soultion works then great.
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