Avatar billede olsen205 Nybegynder
22. august 2005 - 15:31 Der er 22 kommentarer og
1 løsning

Hjælp til Dsum

Hej

Jeg har følgende problem:

1. Jeg ønsker at summere antal pr. varenummer. Jeg har min varetabel I_artikel min logistik tabel l_laglog. Jeg vil kun summere de logposter som er af type 8. Jeg skriver følgende:

Bevægelser: DSum([l_laglog]![logantal];[l_laglog];[l_laglog]![logtype]=8)

Når jeg prøver at køre dette spørger Access om følgende:

"Indtast paremetreværdi"
l_laglog

Håber der er nogle der kan hjælpe en begynder.
Avatar billede terry Ekspert
22. august 2005 - 15:35 #1
Bevægelser: DSum("[logantal]";"[l_laglog]";"[logtype]=8")
Avatar billede terry Ekspert
22. august 2005 - 15:36 #2
.
Avatar billede olsen205 Nybegynder
22. august 2005 - 15:58 #3
Den summere ikke antal korrekt, skal Total feltet være defineret som en Sum?
Avatar billede terry Ekspert
22. august 2005 - 18:22 #4
Dont know what the problem is!
You mention varetabel in your question, where is this used?
Avatar billede olsen205 Nybegynder
22. august 2005 - 20:04 #5
l_artikel er varelager register med alle varenumre, jeg ønsker så at lave en beregning af bevægelserne fra l_laglog type 8.
Avatar billede terry Ekspert
22. august 2005 - 20:07 #6
If you can send me your database then maybe I can see the problem?

eksperten@NOSPAMsanthell.dk

remove NOSPAM
Avatar billede olsen205 Nybegynder
22. august 2005 - 20:44 #7
Desværre er det en database der kører på online data, så det kan jeg desværre ikke. Kan jeg sende dig nogle skærmdumps så kan de være du kan se det derfra?
Det kan først blive imorgen, da jeg pt. ikke har adgang til dataen?
Avatar billede terry Ekspert
22. august 2005 - 20:50 #8
screenshots wont help much I'm afraid!

I would have liked to see the data so that I can se for myslef what dsum shoudl give

If you make a query to select the sum, do you get the correct result?
Avatar billede olsen205 Nybegynder
22. august 2005 - 20:55 #9
Tallene i laglog er

Antal    Type
10        1
-10      8
10        1
-10      8
-1        8

Resultatet i Dsum bliver over 1.000.000
Avatar billede olsen205 Nybegynder
22. august 2005 - 20:56 #10
Grunden til at jeg ikke bruger den almindelige sum er jeg ønsker at kunne sorterer på typen...
Avatar billede terry Ekspert
22. august 2005 - 20:58 #11
I dont understand "Grunden til at jeg ikke bruger den almindelige sum er jeg ønsker at kunne sorterer på typen..."

If you filter on type = 8 then what is there to sort?
Avatar billede olsen205 Nybegynder
22. august 2005 - 21:00 #12
Jeg vil gerne have en række med Type 1 og en Række med type 8, så hvis jeg opretter et filter på type 1 kan jeg ikke lave en sum for type 8, er det ikke korrekt..

Jeg har ikke kunne få det til at virke...
Avatar billede terry Ekspert
22. august 2005 - 21:02 #13
I have just made a simple table named tblType

Antal    Type
10    1
-10    8
10    1
-10    8
-1    8


In the debug window (CTRL+G)
?Dsum("Antal", "tblType", "Type = 8")

answer = -21
Avatar billede terry Ekspert
22. august 2005 - 21:05 #14
22/08-2005 21:00:46???

The original question was concerning Dsum where type = 8!!!
Avatar billede olsen205 Nybegynder
22. august 2005 - 21:05 #15
Jeg prøver igen i morgen tidligt og vender tilbage...
Avatar billede terry Ekspert
22. august 2005 - 21:05 #16
Without being able to see th eproblem its not going to be easy for me to help, I would be just guessing!
Avatar billede olsen205 Nybegynder
25. august 2005 - 08:13 #17
Jeg tror selv jeg er blevet lidt klogere siden sidste.

Min Dsum ser således ud:

Udtryk1: DSum("logantal";"l_laglog";"logtype = 8  And  logvarenr = '0000101945'")

Hvad skal jeg gøre for at få logvarenr til at blive dynamisk således at den vælger varenummeret på den aktuelle linje, og ikke kun udregner for dette enkelte varenummer?
Avatar billede olsen205 Nybegynder
25. august 2005 - 12:05 #18
Altså det jeg vil er at:

For alle varenumre i l_artikel ønsker jeg at summere feltet logantal i l_laglog, hvis feltet l_logtype = 8.
Avatar billede terry Ekspert
25. august 2005 - 12:29 #19
Udtryk1: DSum("logantal";"l_laglog";"logtype = 8  And  logvarenr = '" & Me.FieldContainingVarenummer & "'")
Avatar billede olsen205 Nybegynder
25. august 2005 - 15:56 #20
Udtryk1: DSum("logantal";"l_laglog";"logtype = 8  And  logvarenr = '" & [l_artikel].[varenr] & "'")

kom den endelige til at se ud...

Ved du om det er muligt at kører den igennem VBA editoren med noget der ser således ud:

Dim rs As New ADODB.Recordset

rssql = "SELECT l_artikel.varenr, DSum(""logantal"",""l_laglog"", " + _
        """logtype = 8  And  logvarenr = '"" & l_artikel.varenr & ""'"") AS Udtryk1, " + _
        " l_artikel.vtype " + _
        " " + _
        "FROM l_laglog RIGHT JOIN l_artikel ON l_laglog.logvarenr = l_artikel.varenr " + _
        " " + _
        "GROUP BY l_artikel.varenr, DSum(""logantal"",""l_laglog"",""logtype = 8  " + _
        "And  logvarenr = '"" & l_artikel.varenr & ""'""), l_artikel.vtype " + _
        " " + _
        "HAVING (((l_artikel.vtype)=""3"")) " + _

Du skal nok få nogle ekstra point hvis du kan give mig et svar på dette også?
Avatar billede terry Ekspert
25. august 2005 - 16:40 #21
First thanks for the points!

I would think that what you are trying to do in VBA is possible, but  can yu first tell me if the SQL works as iy is?
Avatar billede terry Ekspert
25. august 2005 - 19:28 #22
iy = it
Avatar billede terry Ekspert
25. august 2005 - 19:32 #23
Can you tell me a little more as to where you want to use this SQL? Are you building the SQL on a form where some of the values in the SQL

For example ('"" & l_artikel.varenr & ""'"")

are taken form fields on the form?
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